首页 > 解决方案 > 根据第一个下拉asp.net的选择填充下拉值和项目

问题描述

这是一个常见问题,我也从这两个链接中得到了提示。 基于另一个下拉列表的值的下拉列表项

根据第一个下拉框中的选定选项加载下拉框

但他们都没有提供完整的解决方案。我需要填充这两个项目及其值。

aspx 代码::

<asp:DropDownList ID="ddlFirstSelection" runat="server" AutoPostBack="true" 
    OnSelectedIndexChanged="ddlFirstSelection_SelectedIndexChanged">
    <asp:ListItem Value="0">select</asp:ListItem>
    <asp:ListItem Value="1">new record</asp:ListItem>
    <asp:ListItem Value="2">old record</asp:ListItem>
</asp:DropDownList>
 <%----- second drop down to be populated from code behind based on ddlFirstSelection selection ------%>
<asp:DropDownList ID="ddlPlan" runat="server"></asp:DropDownList>

后面的代码::

protected void ddlFirstSelection_SelectedIndexChanged(object sender, EventArgs e)
        {
                if(ddlFirstSelection.SelectedValue=="1")
                {
                    ddlPlan.Items.Clear();                    
                    ddlPlan.DataTextField = "ground floor";
                    ddlPlan.DataValueField = "1";
                    ddlPlan.DataTextField = "first floor";
                    ddlPlan.DataValueField = "2";
                    ddlPlan.DataBind();
                }

        }

如何创建一个列表来填充 ddlPlan 下拉列表?除了为此创建数据表之外,还有其他方法吗?

标签: asp.netdropdown

解决方案


您可以简单地创建 AnonymousType 对象列表并将其绑定到第二个 DropDownList 的 DataSource。

            //create list of anonymoustype
            var list = new[] 
            {
                new { Id = 1, Name = "ground floor" },
                new { Id = 2, Name = "first floor" },
            }.ToList();

            ddlPlan.Items.Clear();

            ddlPlan.DataTextField = "Name";
            ddlPlan.DataValueField = "Id";

            //bind anonymous type list to DataSource
            ddlPlan.DataSource = list;
            ddlPlan.DataBind();

推荐阅读