根据第一个下拉菜单asp.net填充下拉值和项目

时间:2019-08-22 10:04:42

标签: asp.net dropdown

这是一个常见问题,我也从这两个链接中得到了提示。 Dropdown list items based on value of another drop down list

load a drop down box based on selected option in first drop down box

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

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下拉列表?除了创建数据表,还有其他方法吗?

1 个答案:

答案 0 :(得分:0)

您可以简单地创建AnonymousType对象的List并将其绑定到第二个DropDownList的数据源。

            //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();
相关问题