我有一个带文字,下拉列表和按钮的转发器。
<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")
{
}
}
我不确定如果通过给定的按钮点击,从文本框和下拉列表中拾取正确的信息是什么?
答案 0 :(得分:1)
RepeaterCommandEventArgs具有“Item”属性,您可以使用该属性来引用发生按钮单击的特定项目(启动命令的项目)。然后,您可以使用相同的FindControl方法从控件中获取数据。
根据您提供的示例代码,您可以使用CommandArgument属性来获取产品ID。这与从控件收集的数据一起将允许您创建订单。