0
我想在listView标签上设置值。但是listview会在所有标签上应用值。无法获取asp listView选择的项目索引
<asp:ListView ID="productListView" runat="server">
<ItemTemplate>
<div class="item col-lg-3 col-md-4 col-sm-6 col-xs-12">
<div class="selection">
<asp:Label runat="server" CssClass="lblShowTag">BRAND:</asp:Label>
<asp:DropDownList ID="ddlBrand" runat="server" CssClass="branddrop" AutoPostBack="True" OnSelectedIndexChanged="ddlBrand_SelectedIndexChanged" ViewStateMode="Enabled" EnableViewState="true"> </asp:DropDownList>
<asp:UpdatePanel ID="updatePanel" runat="server" UpdateMode="Always">
<ContentTemplate>
<asp:Label runat="server" ID="lblShowTag" text="PRICE: " CssClass="lblShowTag"/><asp:Label runat="server" ID="lblEachPrice" CssClass="lblEachPrice"/>
<asp:Label runat="server" ID="lblTotalPrice" CssClass="lblEachPrice" ForeColor="Green" Text="5000"/>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlBrand" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
</div>
</div>
</ItemTemplate>
<EmptyDataTemplate>
<h3>Sorry...No Product Availabel</h3>
</EmptyDataTemplate>
</asp:ListView>
C#
代码:
第一种方法。它只适用于0索引值。
public void ddlBrand_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddl = (DropDownList)sender;
Label lbl = productListView.Items[index:0].FindControl("lblEachPrice") as Label;
lbl.Text = ddl.SelectedValue.ToString();
}
第二个方法:应用所选的所有项目价值:
public void ddlBrand_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddl = (DropDownList)sender;
foreach (ListViewItem item in productListView.Items)
{
Label lbl = item.FindControl("lblEachPrice") as Label;
lbl.Text = ddl.SelectedValue.ToString();
}
}
我想设置选择DropDownVaue上选定的ListView或点击的ListView不是全部。
感谢很多我被困罪4〜5天。你解决了我的问题。你能解释我的工作吗?实际命名控制与** ddl **的工作以及**标签**如何知道这一点。再次非常感谢Sir .. :) –
我只知道NamingContainer属性可以用来在GridView或ListView中检索包含控件(本例中为ddl)的项目。更多细节可以在这里找到:https://msdn.microsoft.com/en-us/library/1d04y8ss.aspx。 – ConnorsFan