2014-01-07 31 views
0

我正在一個ASP.Net項目上工作,並填充了一個名爲categories的列表,一旦這個列表已經做出選擇,我希望下一個名爲子類別的列表填充可能的選擇。在另一個列表進行選擇後填充下拉列表?

第一個列表在頁面加載期間填充,我將列表綁定到數據表。

我已經寫了一個函數來綁定下一個列表,並給它一個參數,我怎麼不能調用函數。

<td valign="top"> 
<asp:Label AssociatedControlID="ddRequestCategory" enableviewstate="False" runat="server" id="lblCategories" meta:resourcekey="lblResCategories" CssClass="FormLabel" /> 
</td> 
<td align="left" valign="top"> 
<ICCM:ICCMDropdownlist style="width:185px;" runat="server" ID="ddRequestCategory" CssClass="iccmdropdown" TabIndex="1" AutoPostBack="true" OnSelectedIndexChanged="ddCategorySelectChange"/> 
</td> 

public void ddCategorySelectChange(object sender, EventArgs e) 
{ 
    string categories; 
    categories = ddRequestCategory.SelectedItem.ToString(); 
    GetSubCategories(categories); 

} 

當選擇下拉碼永遠不會進入ddCategorySelectChange ???

+1

提供您的代碼 –

+0

第一個DropDown的項目選擇和第二個DropDown的項目綁定取決於第一個選擇的項目? – zey

+0

在Ajax或常規郵寄回或您正在嘗試?向我們顯示您的代碼 –

回答

2

您需要創建SelectedIndexChanged事件處理程序和內部的調用你的函數將數據加載到子類別dropdownlist

protected void drpCategory_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     LoadDrpSubCategory(); 
    } 

private void LoadDrpSubCategory() 
    { 
     List<SubCategory> list_SubCategory = new List<SubCategory>(); 
     Guid Id_Category = Guid.Parse(drpCategory.SelectedValue); 
     list_SubCategory = //write code to get data; 

     drpSubCategory.DataValueField = "Id"; 
     drpSubCategory.DataTextField = "TFName"; 
     drpSubCategory.DataSource = list_SubCategory; 
     drpSubCategory.DataBind(); 

    } 

和你.aspx代碼看起來像:

<asp:DropDownList ID="drpCategory" runat="server" AutoPostBack="true" OnSelectedIndexChanged="drpCategory_SelectedIndexChanged" > 

注意在你的.aspx代碼這是非常重要的設置AutoPostBack="true"

+1

值得注意的是AutoPostBack =「true」的重要性。互聯網上的下拉列表出現意​​外行爲的問題很多,並且解決方案確保AutoPostBack設置爲true的時間很長。 –

+0

@DeeMac你在,我編輯了我的回答,並補充了你所說的觀點。 – Karamafrooz

0

我希望你是usin g列表框。將以下事件添加到列表框。從這個事件中你可以綁定第二個列表框。

<asp:ListBox ID="lst" runat="server"AutoPostBack="true" OnSelectedIndexChanged="lst_SelectedIndexChanged"></asp:ListBox> 

    protected void lst_SelectedIndexChanged(object sender, EventArgs e) 
    { 
    } 
+0

我正在使用自定義控件ICCMDropdownlist,並且我已經嘗試過。 – Pomster

+0

@ Pomster你必須提供代碼,你如何創建自定義控件。否則很難給出解決方案。請用代碼更新您的問題。 – Naveen

相關問題