Ajouter une valeur par défaut dans dropdownlist après la liaison avec la base de données
j'ai lié mon ddl à ma base de données comme ci-dessous, mais comment puis-je ajouter un texte par défaut en plus des valeurs liées pour qu'il apparaisse comme:
Select Color ---> default text
Red ---> database value
Blue ---> database value
Green ---> database value
Code:
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";
Merci!
5 réponses
Après de liaison de données, faire ceci:
ddlColor.Items.Insert(0, new ListItem("Select","NA")); //updated code
ou suivez la deuxième suggestion de Brian si vous voulez le faire dans le markup.
vous devriez probablement ajouter un contrôle Requerdfieldvalidator et définir sa valeur initiale à "NA".
<asp:RequiredFieldValidator .. ControlToValidate="ddlColor" InitialValue="NA" />
Vous pouvez le faire par programmation:
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"));
Ou de l'ajouter dans une balise:
<asp:DropDownList .. AppendDataBoundItems="true">
<Items>
<asp:ListItem Text="Select" Value="" />
</Items>
</asp:DropDownList>
Vous pouvez l'ajouter par programmation ou dans le balisage, mais si vous l'ajouter par programmation, plutôt que Add
l'élément, vous devez Insert
comme la position zéro de sorte qu'il est le premier élément:
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", "");
L'élément par défaut devrait être le premier élément de la liste. Si vous venez d' Add
, il sera sur le fond et ne sera pas sélectionné par défaut.
design
<asp:DropDownList ID="ddlArea" DataSourceID="ldsArea" runat="server" ondatabound="ddlArea_DataBound" />
code
protected void ddlArea_DataBound(object sender, EventArgs e)
{
ddlArea.Items.Insert(0, new ListItem("--Select--", "0"));
}
La solution fournie par Justin devrait fonctionner. Pour être sûr de faire usage de SelectedIndex
la propriété aidera aussi.
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;