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

k80*_*0sg 22 c# asp.net

我将我的ddl绑定到我的数据库,如下所示,但是如何在绑定值的顶部添加默认文本,使其显示为:

Select Color ---> default text
Red ---> database value
Blue ---> database value
Green ---> database value   
Run Code Online (Sandbox Code Playgroud)

码:

    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";
Run Code Online (Sandbox Code Playgroud)

谢谢!

Kei*_*ith 43

数据绑定后,执行以下操作:

ddlColor.Items.Insert(0, new ListItem("Select","NA")); //updated code
Run Code Online (Sandbox Code Playgroud)

或者按照Brian的第二个建议,如果你想在标记中做到这一点.

您应该添加一个RequiredFieldValidator控件并将其InitialValue设置为"NA".

<asp:RequiredFieldValidator .. ControlToValidate="ddlColor" InitialValue="NA" />
Run Code Online (Sandbox Code Playgroud)


Bri*_*ins 14

你可以通过编程方式完成:

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"));
Run Code Online (Sandbox Code Playgroud)

或者将其添加到标记中:

<asp:DropDownList .. AppendDataBoundItems="true">
   <Items>
       <asp:ListItem Text="Select" Value="" />
   </Items>
</asp:DropDownList>
Run Code Online (Sandbox Code Playgroud)


Dev*_*rke 5

您可以以编程方式或在标记中添加它,但如果以编程方式添加它而不是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", "");
Run Code Online (Sandbox Code Playgroud)

默认项目应该是列表中的第一项。如果您只是Add选择它,它将位于底部并且默认情况下不会被选中。