2

Webショップタイプのプロジェクト用のASPコードを作成しました。ProductIDをCookieに追加し、商品の数量に1を追加するメソッドがあります。別の方法では、Cookieを読み取り、Cookieをデータテーブルに変換してグリッドビューに配置します。このグリッドビューは基本的にshoppingcart.aspxページです。

私が今必要としているのは、そのグリッドビューにボタンフィールドを追加する方法です。ここで++ボタンを追加できます(製品ページのショッピングカートに追加ボタンなど)。通常のaspボタンは使用できますonclick="methodname"が、グリッドビューのこれらは使用できません。

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

これが、すべての++ボタンに使用するコードです。button.id(buttonID = productID)を取ります。したがって、すべてのボタンを同じ画像にする方法が必要ですが、buttonIDはproductIDにデータバインドされている必要があります。これにより、何らかの方法でそのメソッドを実行できるようになります(ある種のonclick="")。

私は過去数時間見てグーグルで検索しましたが、何も見つからないようです。過去に私はstackoverflowについて多くの答えを見つけたので、ここの誰かが助けてくれることを望みました。

前もって感謝します。

4

1 に答える 1

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#コードで、グリッドビューの次のイベントを作成し、必要なことを実行します。

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

GVは私のGridViewのIDです!

于 2012-06-10T17:18:42.057 に答える