2008-10-30 7 views
1

Je lie la liste déroulante avec l'entité db.Liaison de données DropDown Control dans .Net

ddlCustomer.DataSource = Customer.GetAll(); 
ddlCustomer.DataTextField = "CustomerName"; 
ddlCustomer.DataBind(); 

Je souhaite ajouter "SELECT" comme première liste d'éléments dans la liste déroulante et lier l'entité à la liste déroulante. Comment puis-je faire ceci?

Répondre

4

Ajouter:

ddlCustomer.Items.Insert(0, "SELECT"); 

Après ddlCustomer.DataBind();

L'élément doit être inséré après la liaison de données car la liaison de données efface les éléments.

+0

Vous pouvez également définir la propriété 'AppendDataBoundItems' de DropDownList sur 'True'. "Obtient ou définit une valeur qui indique si les éléments de liste sont effacés avant la liaison de données." à partir de http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.appenddatabounditems.aspx. – Dhaust

0

Je ne sais pas s'il y a une solution d'une ligne à ceci, mais ce que je faisais avant, n'utilisant pas DataBind, et d'abord créer l'objet ListItem qui aura "Select" comme texte, puis boucle la collection est retournée par Customer.GetAll() et crée un objet ListItem pour chaque élément de la collection et l'ajoute à la liste déroulante en utilisant "DropDownList.Iems.Add (MyItem)", je sais que ça n'a pas l'air très brillant mais il fait le travail, après tout c'est ce que fait DataBind derrière.

0

Je sais qu'il ya une réponse déjà, mais vous pouvez aussi le faire:

<asp:DropDownList AppendDataBoundItems="true" ID="ddlCustomer" runat="server"> 
    <asp:ListItem Value="0" Text="Select"/> 
</asp:DropDownList> 

De cette façon, vous ne serez pas à vous soucier lorsque vous appelez et Databind lorsque vous ajoutez le select-élément.