无法获取 asp 列表查看所选项目索引

本文关键字:选项 项目 索引 获取 asp 列表 | 更新日期: 2023-09-27 18:36:34

我正在尝试在列表视图标签上设置值。但是列表视图在所有标签上应用值。

<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();
    }
}

我想在选定的列表视图或单击列表视图上设置选定的下拉列表Vaue 不是全部。

无法获取 asp 列表查看所选项目索引

也许这就是你想要的:

public void ddlBrand_SelectedIndexChanged(object sender, EventArgs e)
{
    DropDownList ddl = (DropDownList)sender;
    ListViewItem item = (ListViewItem)(ddl.NamingContainer);
    Label lbl = item.FindControl("lblEachPrice") as Label;
    lbl.Text = ddl.SelectedValue.ToString();
}