2012-06-10 236 views
1

我已經寫了一個網上商店類型項目的ASP代碼。有一種方法可以將ProductID添加到Cookie中,並將產品的數量加1。 另一種方法是讀取cookie,將cookie轉換爲數據表並將其放入gridview中。這個gridview基本上是shoppingcart.aspx頁面。ASP.net C#Gridview ButtonField onclick事件

我現在需要的是一種將buttonfield添加到gridview的方式,我可以在其中添加一個++按鈕(例如添加到產品頁面上的購物車按鈕),普通的asp按鈕需要onclick="methodname"但這些在gridview不。

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

這是我用於所有++按鈕的代碼。它採用button.id(buttonID = productID)。所以我需要一種方法來讓所有的按鈕都是相同的圖像,但buttonID必須是數據綁定到productID,所以它可以以某種方式執行該方法(某種onclick="")。

我過去幾個小時看過並搜索了一下,但我似乎找不到任何東西。在過去,我在stackoverflow上找到了很多答案,所以我希望這裏的某個人可以提供幫助。

在此先感謝。

+4

壞壞不好,不要將您的購物車清單保存在cookies上,請將您的購物車清單保存在連接到cookie的數據庫中。餅乾是有限的,你可以在所有頁面中進行,他們可以操縱破壞你的商店。 – Aristos

回答

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是的ID我網格視圖 !

+0

非常感謝,現在就開始工作吧! – stevanov

+0

你非常歡迎! – Karamafrooz