C# 使用第三级子菜单限定第二级菜单

C# 使用第三级子菜单限定第二级菜单,c#,css,asp.net,sql-server,C#,Css,Asp.net,Sql Server,我有3个下拉列表“类别”、“类别类型”和“类别类型样式”。所有3个都是从数据库填充的 类别类型是基于在“类别”下拉列表中所做的选择填充的 我希望CategoryType样式基于在CategoryType中所做的选择进行填充,从而提供选择为CategoryType样式的选项 我的Category和Category Type工作正常,但无法正确获得CategoryType样式部分。任何帮助都将不胜感激。CSS代码如下所示: protected void Page_Load(object sender

我有3个下拉列表“类别”、“类别类型”和“类别类型样式”。所有3个都是从数据库填充的

类别类型是基于在“类别”下拉列表中所做的选择填充的

我希望CategoryType样式基于在CategoryType中所做的选择进行填充,从而提供选择为CategoryType样式的选项

我的Category和Category Type工作正常,但无法正确获得CategoryType样式部分。任何帮助都将不胜感激。CSS代码如下所示:

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            ddlCategory.DataSource = GetData("spGetCategory", null);
            ddlCategory.DataBind();

            ListItem liCategory = new ListItem("Select A Category", "-1");
            ddlCategory.Items.Insert(0, liCategory);

            ListItem liCategoryType = new ListItem("Select A Category Type", "-1");
            ddlCategoryType.Items.Insert(0, liCategoryType);

            ddlCategoryType.Enabled = false;


            ListItem liStyle = new ListItem("Select A Style", "-1");
            ddlStyle.Items.Insert(0, liStyle);

            ddlStyle.Enabled = false;
 }


protected void ddlCategory_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (ddlCategory.SelectedIndex == 0)
        {
            ddlCategoryType.SelectedIndex = 0;
            ddlCategoryType.Enabled = false;
        }
        else
        {
            ddlCategoryType.Enabled = true;
            SqlParameter parameter = new SqlParameter("@CategoryID", ddlCategory.SelectedValue);
            DataSet DS = GetData("spGetCategoryTypeByCategoryID", parameter);

            ddlCategoryType.DataSource = DS;
            ddlCategoryType.DataBind();

            ListItem liCategoryType = new ListItem("Select A Category Type", "-1");
            ddlCategoryType.Items.Insert(0, liCategoryType);
        }

        if (ddlCategoryType.SelectedIndex == 0)
        {
            ddlStyle.SelectedIndex = 0;
            ddlStyle.Enabled = false;
        }
        else
        {
            ddlStyle.Enabled = true;
            SqlParameter parameter = new SqlParameter("@CategoryTypeID", ddlCategoryType.SelectedValue);
            DataSet DS = GetData("spGetStyleByCategoryTypeID", parameter);

            ddlStyle.DataSource = DS;
            ddlStyle.DataBind();

            ListItem liStyle = new ListItem("Select A Style", "-1");
            ddlStyle.Items.Insert(0, liStyle);
        }
    }
任何帮助都将不胜感激

我尝试了一个只针对CategoryType的Indexchange,但它也不起作用。代码:protectedvoid ddlCategoryType_SelectedIndexedChanged(对象发送方,事件参数e) { 如果(ddlCategoryType.SelectedIndex==0) { ddlStyle.SelectedIndex=0; ddlStyle.Enabled=false; } 其他的 { ddlStyle.Enabled=true; SqlParameter参数=新的SqlParameter(“CategoryTypeID”,ddlCategoryType.SelectedValue); 数据集DS=GetData(“spGetStyleByCategoryTypeID”,参数)


当然,您需要一个ddlCategoryType_SelectedIndexChanged来处理填充样式ddl?Darren,我尝试了查看上面的编辑。我也按照您的建议进行了尝试。我认为,由于CategoryType与类别绑定,直接索引交换将不起作用。
        ddlStyle.DataSource = DS;
        ddlStyle.DataBind();

        ListItem liStyle = new ListItem("Select A Style", "-1");
        ddlStyle.Items.Insert(0, liStyle);
    }
}