这是一个常见问题,我也从这两个链接中得到了提示。 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下拉列表?除了创建数据表,还有其他方法吗?
答案 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();