2016-02-27 75 views
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不是全部。

回答

0

也許這是你想要什麼:

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

感謝很多我被困罪4〜5天。你解決了我的問題。你能解釋我的工作嗎?實際命名控制與** ddl **的工作以及**標籤**如何知道這一點。再次非常感謝Sir .. :) –

+0

我只知道NamingContainer屬性可以用來在GridView或ListView中檢索包含控件(本例中爲ddl)的項目。更多細節可以在這裏找到:https://msdn.microsoft.com/en-us/library/1d04y8ss.aspx。 – ConnorsFan