在与数据库绑定后在下拉列表中添加默认值
本文关键字:添加 默认值 下拉列表 数据库 绑定 | 更新日期: 2023-09-27 18:01:38
我像下面这样将我的ddl绑定到我的数据库,但是我如何在绑定值的顶部添加默认文本,使其显示为:
Select Color ---> default text
Red ---> database value
Blue ---> database value
Green ---> database value
代码: DropDownList ddlSize = (DropDownList)FormView_Product.Row.Cells[0].FindControl("ddlSize");
CommerceEntities db = new CommerceEntities();
ddlColor.DataSource = from p in db.ProductTypes
where p.ProductID == pID
orderby p.Color
select new { p.Color };
ddlColor.DataTextField = "Color";
谢谢!
数据绑定后,执行以下操作:
ddlColor.Items.Insert(0, new ListItem("Select","NA")); //updated code
或者按照Brian的第二个建议,如果你想用标记。
你可能应该添加一个RequiredFieldValidator控件,并将其InitialValue设置为"NA"。
<asp:RequiredFieldValidator .. ControlToValidate="ddlColor" InitialValue="NA" />
您可以通过编程方式实现:
ddlColor.DataSource = from p in db.ProductTypes
where p.ProductID == pID
orderby p.Color
select new { p.Color };
ddlColor.DataTextField = "Color";
ddlColor.DataBind();
ddlColor.Items.Insert(0, new ListItem("Select", "NA"));
或者添加到标记中:
<asp:DropDownList .. AppendDataBoundItems="true">
<Items>
<asp:ListItem Text="Select" Value="" />
</Items>
</asp:DropDownList>
您可以通过编程方式或在标记中添加它,但如果您通过编程方式添加它,而不是将项目Add
,则应该将其Insert
作为位置零,以便它是第一个项目:
ddlColor.DataSource = from p in db.ProductTypes
where p.ProductID == pID
orderby p.Color
select new { p.Color };
ddlColor.DataTextField = "Color";
ddlColor.DataBind();
ddlColor.Items.Insert(0, new ListItem("Select Color", "");
默认项应该是列表中的第一个项。如果你只是Add
,它将在底部,默认情况下不会被选中
design
<asp:DropDownList ID="ddlArea" DataSourceID="ldsArea" runat="server" ondatabound="ddlArea_DataBound" />
后台代码 protected void ddlArea_DataBound(object sender, EventArgs e)
{
ddlArea.Items.Insert(0, new ListItem("--Select--", "0"));
}
Justin提供的解决方案应该可以工作。为了确保使用SelectedIndex
属性也会有所帮助。
ddlColor.DataSource = from p in db.ProductTypes
where p.ProductID == pID
orderby p.Color
select new { p.Color };
ddlColor.DataTextField = "Color";
ddlColor.DataBind();
ddlColor.Items.Insert(0, new ListItem("Select Color", "");
ddlColor.SelectedIndex = 0;