根据另一个下拉列表中的选定值动态填充下拉列表

本文关键字:下拉列表 动态 填充 另一个 | 更新日期: 2023-09-27 18:04:27

我有两个下拉列表,其中一个在页面加载时填充,另一个应该只在第一个中选择值时填充。第一个下拉列表定义为:

<asp:DropDownList ID = "base_ddl" runat="server" ToolTip="Base" OnSelectedIndexChanged = "BaseSelected">
//  snip...
</asp:DropDownList>

然后,用OnSelectedIndexChanged方法填充第二个下拉列表(secondary_ddl), BaseSelected

    public void BaseSelected(object sender, EventArgs e)
    {
        if (base_ddl.SelectedValue == "-1")
        {
            secondary_ddl.Visible = false;
        }
        else 
        {
            secondary_ddl.Items.Clear();
            // extract information to populate dropdown here
            // snip.
            IList<InfoContainer> info = getInfoBasedOnSelected(base_ddl.Value);
            foreach (InfoContainer i in info)
            {
                secondary_ddl.Items.Add(new ListItem(i.name, i.value));
            }
        }
    }

这行不通,这就引出了这个问题:为什么?我如何从OnSelectedIndexChanged函数动态更新另一个下拉列表中的下拉列表?

根据另一个下拉列表中的选定值动态填充下拉列表

base_ddlAutoPostBack="True"属性

然后

secondary_ddl.Items.Clear();
IList<InfoContainer> info = getInfoBasedOnSelected(base_ddl.Value);
secondary_ddl.DataTextField = "name";
secondary_ddl.DataValueField = "value";
secondary_ddl.DataSource = info;
secondary_ddl.DataBind();