ASP.NET上的数据库驱动的依赖动态DropDownList

时间:2015-06-13 09:17:55

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

我的AddProduct.aspx

中有2个下拉列表,如下所示
<asp:DropDownList ID="ddlBrand" runat="server"></asp:DropDownList>    
<asp:DropDownList ID="ddlSubBrand" runat="server"></asp:DropDownList>

在Code Behind File下,我使用这些代码将我的品牌下拉列表设为数据库驱动

ddlBrand.DataSource = brandManager.getAllBrand();
            ddlBrand.DataTextField = "BrandName";
            ddlBrand.DataValueField = "BrandId";
            ddlBrand.DataBind();
            ListItem item = new ListItem();
            item.Value = "0";
            item.Text = "--Select Brand--";
            ddlBrand.Items.Insert(0, item);

我试图让我的SubBrand下拉列表变为动态,并根据在品牌下拉列表中选择的内容进行更改。两个下拉列表彼此相邻,因此我不确定如何在选择后立即获得所选品牌的价值。我计划在我的类中使用此语句将所选值解析为数据库,该类从数据库中检索值。

   "SELECT SubBrandId,SubBrandName " +
   " DateOfBirth FROM SubBrand WHERE " +
   " BrandId = @inBrandId"

1 个答案:

答案 0 :(得分:0)

一旦品牌被选中,您可能希望回复所选项目:

<asp:DropDownList ID="ddlBrand" runat="server" OnSelectedIndexChanged="BrandSelectedIndexChanged" AutoPostBack="true"></asp:DropDownList>

在代码隐藏中,您必须添加方法:

protected void BrandSelectedIndexChanged(object sender, EventArgs args) {
    int id;
    if (int.TryParse(ddlBrand.SelectedValue, out id)) {
        //Do your thing here with the id of the brand, e.g. bind sub brands.
    }
}