与数据库绑定后,在下拉列表中添加默认值

我将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;