1

ユーザー コントロールにグリッド ビューがあり、以下のエラーが発生しています。

RegisterForEventValidation can only be called during Render();

私は使っているgv.RenderControl(htw);

私のコードは以下の通りです:

private void ExportToExcel(string strFileName, GridView gv)
    {
        Response.ClearContent();
        Response.AddHeader("content-disposition", "attachment; filename=" + strFileName);
        Response.ContentType = "application/excel";
        System.IO.StringWriter sw = new System.IO.StringWriter();
        HtmlTextWriter htw = new HtmlTextWriter(sw);
        gv.RenderControl(htw);
        Response.Write(sw.ToString());
        Response.End();
    }

サーバーコントロールがフォームコントロールの例外の外で作成されないようにするために、以下のコードを使用しています:

public override void VerifyRenderingInServerForm(Control control)
{
    /* Verifies that the control is rendered */
}

しかし、私はこのコードをすべてユーザーコントロールで使用しています。基本クラスにはこのメソッドはありません。ユーザーコントロールを配置するページの上に配置しても、エラーが発生します

また、既にタグ付けされたフォームがある masterpage を使用していることにも注意してください。

4

2 に答える 2

1

ページディレクティブで EnableEventValidation を false に設定すると、問題が解決しました。

 <%@ Page ............ EnableEventValidation="false" %>
于 2013-07-14T10:02:59.797 に答える