与数据库绑定后,在下拉列表中添加默认值
我将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”。
你可以通过编程方式完成:
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"));
或者将其添加到标记中:
您可以通过编程方式或在标记中添加它,但如果以编程方式添加它,而不是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
它,它将位于底部,默认情况下不会被选中。
设计
代码隐藏
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;