2010-05-01 5 views
3

J'utilise une liste déroulante dans ASP.NET avec C#. J'essaie de lier un dictionnaire à la liste déroulante.ASp.NET Dropdown and Dictionary

Comment pouvons-nous spécifier le "Texte" (clé du dictionnaire comme texte du menu déroulant) et "valeur" (valeur comme valeur) pour la liste déroulante?

Pourriez-vous m'aider s'il vous plaît?

Remarque: Il existe une contrainte selon laquelle une classe ne doit pas être introduite à cette fin. C'est pourquoi j'essaie d'utiliser un dictionnaire.

Merci

Lijo

Répondre

6

Configurez votre menu déroulant pour utiliser Key et Value, comme ceci:

dropdown.DataValueField = "Key"; 
dropdown.DataTextField= "Value"; 
dropdown.DataSource = myDictionary; 
dropdown.DataBind(); 

Puisque vous liant en fait un KeyValuePair à chaque élément, les propriétés que vous souhaitez les accès sont Key et Value.

1
Dictionary<string, string> myDictionary = new Dictionary<string, string>(); 
myDictionary.Add("1", "Item1"); 
myDictionary.Add("2", "Item2"); 
myDictionary.Add("3", "Item3"); 

DropDownId.DataSource = myDictionary; 
DropDownId.DataTextField = "Key"; 
DropDownId.DataValueField = "Value"; 
DropDownId.DataBind(); 

Je voudrais aussi ajouter que si vous ne pouvez pas ajouter un nouveau List<myClass> à cet effet alors pourquoi êtes-vous autorisé à utiliser un dictionnaire? Nous pouvons également ajouter des éléments à la liste déroulante sans source de données:

DropDownID.Items.Add(new ListItem("Item4","4"));