2010-05-27 62 views
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(); 

      } 
     } 

,我有我的itemcommand拿起点击按钮

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

      } 
     } 

我不知道怎么样,点击给定的按钮,从文本框和下拉列表中获取正确的信息,并将其放在一边呢?

回答

1

RepeaterCommandEventArgs有一个“Item”属性,您可以用它来引用发生按钮单击的特定项目(启动该命令的项目)。然后,您可以使用相同的FindControl方法从控件中获取数据。

根据您提供的示例代码,可以使用CommandArgument属性获取产品ID。这与从控件收集的数据一起将允许您创建订单。

+0

谢谢你,我新的它会是简单的东西,但它一如既往地知道那简单的东西是什么.. – TheAlbear 2010-05-27 12:27:22