1

各行に画像ボタンがあるグリッドビューがあります。コマンド名とコマンド引数を設定しました。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="1" CellSpacing="1" CssClass="one-column-emphasis" DataKeyNames="Id" OnRowCommand="GridView1_RowCommand" OnRowDataBound="GridView1_RowDataBound">

<asp:TemplateField>
                <ItemTemplate>
                    <asp:ImageButton ID="ImageButton1" runat="server" AlternateText="Register" CssClass="buttonreg" EnableTheming="False" CommandArgument='<%# Eval("Id") %>' CommandName="register" />
                </ItemTemplate>
                <ItemStyle HorizontalAlign="Center" />
            </asp:TemplateField>

次のエラーが表示されます。

ポストバックまたはコールバック引数が無効です。イベントの検証は、設定で使用するか、ページで <%@ Page EnableEventValidation="true" %> を使用して有効にします。セキュリティ上の理由から、この機能は、ポストバック イベントまたはコールバック イベントへの引数が、それらを最初にレンダリングしたサーバー コントロールから発信されていることを確認します。データが有効で期待される場合は、ClientScriptManager.RegisterForEventValidation メソッドを使用して、検証のためにポストバックまたはコールバック データを登録します。

私は何が欠けていますか?

4

5 に答える 5

1

DropDownList の AutoPostBack プロパティを False に設定します。Pag​​e_Load イベントで、

 protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
      //Call Grid() function.
    }

}

DropDownList の SelectIndexChanged イベントで Grid() 関数を呼び出します。助けてくれてありがとう。

于 2014-01-24T06:37:48.283 に答える
1

グリッドビューを使用している場合は、これをバインドします

protected void Page_Load(Object sender, EventArgs e)
{
    if(!IsPostBack)
    {
        Binddatagrid();
    }
}

ClientScriptManager.RegisterForEventValidation メソッドのポストバック メソッドを登録します

于 2014-01-23T10:03:24.937 に答える
0

this is an old thread but thought of replying cause I had a hard time finding the solution for this.

The solution is you have to use if (!IsPostBack)

but in my case i had nothing written in my Page_Load event of the .aspx page but I had below code in my master page.

protected void Page_Load(object sender, EventArgs e)
{
    Page.DataBind();
}

once I put that Page.Databind(); inside if (!IsPostBack) problem solved.

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        Page.DataBind();
    }
}

Hope somebody find this usefull.

于 2015-06-04T09:19:17.483 に答える