3

リピーターの内部に 2 つのボタンがあり、コード ビハインドからアクセスしようとしていますが、機能していません。次のエラーが表示されます。

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

エラーが何を意味するのか、どこから来たのかわかりません。これが私のコードです:

    <asp:Repeater ID="Repeater1" runat="server" 
        onitemdatabound="Repeater1_ItemDataBound1" 
        onitemcommand="Repeater1_ItemCommand" >
    <ItemTemplate>
    <table>
    <tr>


        <td><asp:Image ID="Image1" runat="server" /></td>
         <td><asp:Label ID="empnamelbl" runat="server" Text='<%# Eval("fullname") %>'></asp:Label></td>
        <td><asp:DropDownList ID="DropDownList1" runat="server">
        </asp:DropDownList></td>
        <td> <asp:Button ID="Button1" runat="server" Text="Present" CommandName="test1"  CommandArgument='<%# Eval("ID") %>' /> </td>
        <td><asp:Button ID="Button2" runat="server" Text="Absent"  CommandName="test2" CommandArgument='<%# Eval("ID") %>' /> </td>
        </tr>
        </table>
    </ItemTemplate>
    </asp:Repeater>

コードビハインド:

protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
    if (e.CommandName == "test1")
    {
        Response.Write("hi");
    }
}
4

3 に答える 3

5

ボタンの UseSubmitBehavior="false" プロパティを使用して解決できました。

はい、これ:

<asp:Button ID="Button2" UseSubmitBehavior="false" runat="server" Text="Absent"  CommandName="test2" CommandArgument='<%# Eval("ID") %>' />
于 2013-08-11T13:37:05.137 に答える
1
于 2013-08-11T12:59:13.293 に答える
0

サーバーで実行されるイメージが存在するため、代わりに img タグを使用してみてください

于 2013-08-11T11:17:39.230 に答える