2009-09-24 4 views
0

J'ai une zone de liste déroulante asp.net normale sur ma page Web. La version actuelle est la liaison de données à un objet datatable, mais je veux le changer afin qu'il répertorie des données à une collection, mais je reçois des erreurs.Liaison de données d'une zone de liste déroulante à une collection

J'ai essayé d'utiliser un ObjectDataSource, mais ils ont des commandes CRUD dont je n'ai pas besoin. Donc, la question est ... Comment puis-je lier un combobx asp.net à une collection? Ai-je besoin de le convertir en une liste (peut-être longue) ou existe-t-il un meilleur moyen?

+1

Veuillez publier les erreurs. – womp

Répondre

2

Chaque objet dont le type hérite IEnumerable peut être lié à un objet qui prend en charge la liaison de données, donc le faire

object.DataSource = collection; 
object.DataBind(); 

et il sera fonctionne bien.

1

Vous pouvez toujours attribuer une collection à la propriété source de données de combobox

0

Avec une zone de liste déroulante ASP.NET, vous devez également définir les champs DataValueField et DataTextField.

cboBox.DataSource = collection; 
cboBox.DataTextField = "Name"; 
cboBox.DataValueField = "ID"; 
cboBox.DataBind(); 

Cela devrait obtenir vos données pour afficher comment vous le voulez.

0

Merci pour vos réponses.

L'erreur que je recevais était le DataSourceID de « controlname » doit être l'ID d'un contrôle de type IDataSource

je Databinding comme vous le suggérez

this.combobox.DataSource = userCollection; 
this.combobox.DataTextField = "Name"; 
this.combobox.DataValueField = "UserId"; 
this.combobox.DataBind(); 

Mais je me suis dit que le DataSourceID la propriété a été définie dans la vue Designer, j'ai donc supprimé cela et tout a commencé à fonctionner normalement :)

Questions connexes