在另一个列表进行选择后填充下拉列表?

时间:2014-01-07 11:13:49

标签: c# asp.net drop-down-menu

我正在开发一个ASP.Net项目,并填写了一个名为类别的列表,一旦这个列表做出选择,我希望下一个列表标题为子类别,以填充可能的选择。

在页面加载期间填充第一个列表,我将列表绑定到数据表。

我编写了一个函数来绑定下一个列表并给它一个参数,但是我怎么也无法调用该函数。

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

}

选择Drop down时,代码永远不会进入ddCategorySelectChange ???

2 个答案:

答案 0 :(得分: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 :(得分:0)

我希望您使用的是列表框。将以下事件添加到列表框中。从此事件中,您可以绑定第二个列表框。

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

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