1

リテラル、ドロップダウンリスト、およびボタンを備えたリピーターがあります。

  <asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="rep_ItemDataBound" onitemcommand="Repeater1_ItemCommand">
        <ItemTemplate>
          <div class="buypanel">
        <ul>
            <li>Choose finish <asp:DropDownList ID="ddlFinish" runat="server"></asp:DropDownList></li>
            <li>Qty <asp:Literal ID="ltQty" runat="server"></asp:Literal></li>
            <li><asp:Button ID="butBuy" runat="server" Text="Button" /></li>
        </ul>
        </div>
    </ItemTemplate>
    </asp:Repeater>

私はコードの背後にあるすべての情報を次のようにバインドしています

 protected void rep_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                Products product = (Products) e.Item.DataItem;


               //Dropdownlist to be bound. 

                //Set Buy Button
                var butBuy = (Button) e.Item.FindControl("butBuy");
                butBuy.CommandName = "Buy";
                butBuy.CommandArgument = product.Id.ToString();

            }
        }

そして私はボタンクリックで拾うために私のitemコマンドを持っています

  protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            if(e.CommandName == "Buy")
            {

            }
        }

特定のボタンをクリックして、テキストボックスとその横にあるドロップダウンリストから適切な情報を取得する方法がわかりません。

4

1 に答える 1

1

RepeaterCommandEventArgs には、ボタン クリックが発生した特定のアイテム (コマンドを起動したアイテム) を参照するために使用できる "Item" プロパティがあります。次に、同じ FindControl メソッドを使用して、コントロールからデータを取得できます。

提供されたサンプル コードに基づいて、CommandArgument プロパティを使用して製品 ID を取得できます。これは、コントロールから収集されたデータと組み合わせて、注文を作成できるようにします。

于 2010-05-27T12:13:28.023 に答える