ASP.net C#Gridview ButtonField onclick事件

时间:2012-06-10 16:56:25

标签: c# asp.net data-binding onclick

我为网上商店类型项目编写了一个ASP代码。有一种方法可以将ProductID添加到cookie中,并将产品数量加1。 另一种方法是读取cookie,将cookie转换为数据表并将其放入gridview中。这个gridview基本上是shoppingcart.aspx页面。

我现在需要的是一种向gridview添加按钮字段的方法,我可以在其中添加++按钮(如产品页面上的添加到购物车按钮),普通的asp按钮需要onclick="methodname"但是这些在gridview中没有。

add1ToShoppingCart(string productId)
{[...]shoppingCartCookie[productId] = (amount + 1).ToString();}

这是我用于所有++按钮的代码。它需要button.id(buttonID = productID)。因此我需要一种方法让所有按钮都是相同的图像,但是buttonID必须数据绑定到productID,这样它才能以某种方式执行该方法(使用某种onclick="")。

过去几个小时我看了看谷歌,但我似乎找不到任何东西。在过去,我在stackoverflow上找到了很多答案,所以我希望这里有人可以提供帮助。

提前致谢。

1 个答案:

答案 0 :(得分:8)

您可以使用模板字段:

                     <asp:TemplateField ItemStyle-Width="33px" ItemStyle-HorizontalAlign="Center" ItemStyle-VerticalAlign="Middle"
                            ShowHeader="false" HeaderStyle-Height="40px">
                            <ItemTemplate>
                                <asp:ImageButton ID="btnAddToCard" runat="server" ImageUrl="~/Images/btnAddToCard.png" CausesValidation="false"
                                    CommandName="AddToCard" CommandArgument='<%# Eval("ID") %>'
                                    />
                            </ItemTemplate>
                            <HeaderStyle Height="40px"></HeaderStyle>
                            <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Width="33px"></ItemStyle>
                        </asp:TemplateField>

并在您的C#代码后面创建gridview的以下事件并执行您想要的操作:

 protected void GV_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "AddToCard")
        {
           //Write code to add to card
        }
   }

GV是我的GridView的ID!