5

私はasp.netで作業しており、リピーターを持っています。リピーターによって表示されたアイテムの1つから応答したいと思います。私のコードは次のとおりです。

<asp:Repeater ID="Repeatercart" runat="server" OnItemCommand ="RepeaterDeleteitemcommand" >
<ItemTemplate>                     
    <table> 
    <tr>
        <td><img id="Image1" src="PerfumeImages/<%#Eval("ProductImage") %>" width="90" /></td>
    </tr>                               
    <tr>
        <td><%#Eval("ProductName") %> x<%#Eval("Quantity") %></td>
    </tr>
    <tr>
        <td> <%#Eval("ProductGender") %></td>
    </tr>
    <tr>
        <td> <%#Eval("ProductSize") %> ml</td>
    </tr>                               
    <tr>
        <td><a class="buy-btn"><asp:Button ID="Button1" CommandName="Click" Text="Remove from cart" runat="server" CommandArgument='<%# Eval("ProductId") %>' /></a></td>
    </tr>
    </table>            
</ItemTemplate>
</asp:Repeater>   

これは私のコードビハインドです:

protected void RepeaterDeleteitemcommand(object source, RepeaterCommandEventArgs e)
{
    switch (e.CommandName)
    {
        case "Click":
               Label1.Text = "ok !";
               break;
    }
}  

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

4

2 に答える 2

1

私は問題を解決し、ここに書きたかったので、同じ問題を抱えている人を助けることができます。ページロードの下に「if (!IsPostBack)」を追加すると、問題が解決します。

于 2014-06-02T19:38:13.367 に答える
0

このようなものを使用してみてください

<asp:LinkButton runat="server" ID="btnDelete" Text="Delete" OnCommand="btnDelete_Click" CommandArgument="<%# ((YourObjType)Container.DataItem).Id %>"

そう

protected void btnDelete_Click(object sender, CommandEventArgs e)
{
   //e.CommandArgument contains your id
}
于 2014-06-02T14:48:13.467 に答える