asp.net - 根据第一个下拉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 下拉列表?除了为此创建数据表之外,还有其他方法吗?
解决方案
您可以简单地创建 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();
推荐阅读
- c# - 如何从 Serilog.ILogger 创建 MELA.ILogger 以在 .NET Standard 库中使用
- machine-learning - 如何保存大型 sklearn RandomForestRegressor 模型进行推理
- django - 查询 ManyToMany 模型以返回链接到 B 和反向的 A 实例的数量?
- python - 在 Python 中的 Excel 文件中打印输出
- c# - 如何初始化 DateTime 属性以显示 Date.Now
- sequelize.js - Sequelize.js - 如何访问相关的内存项
- math - 尽可能快地求解 Rust 中 Pi 的第 n 位数
- autohotkey - Autohotkey:如果a / o / u与e一起按下,则发送变音符号?
- javascript - 需要找到 2 个对象在 Javascript 中的位置
- c# - 使用逆运动学,我将如何在动作之间制作动画?