2012-03-12 6 views
2
var dict = new Dictionary<string,string>(); 
dict.Add("A","123"); 
dict.Add("B","456"); 
dict.Add("C","789"); 
dict.Add("D","000"); 
var list = new List<Dictionary<string,string>>(); //pretty much like a DataTable 
list.Add(dict); //more than one dict in the list 

//ddl is a dropdownlist 
ddl.DataSource = list 
ddl.DataTextField ="[A]"; 
ddl.DataValueField ="[C]"; 
ddl.DataBind(); 

Для WPF, я могу выполнить аналогичную привязку выше, но не в asp.net.Список привязок <Словарь <string, string> to DropDownList

+0

хорошо вы знаете, что WPFs связывание пара величин ** лучше ** чем ASP.NETs? Вам придется преобразовать свои данные, прежде чем связывать их как DataSource - извините. – Carsten

+0

Вы хотите связать словарь строк с выпадающим списком в asp.net.Is it? – JayOnDotNet

ответ

6

Вы должны связать свой словарь, а не список. Что-то вроде этого:

var dict = new Dictionary<string,string>(); 
dict.Add("A","123"); 
... 

ddl.DataSource = dict 
ddl.DataTextField ="Key"; 
ddl.DataValueField ="Value"; 
ddl.DataBind(); 
3

Это работает для меня:

Dictionary<string, string> myDict = Dictionary<string, string>(); 
myDict.Add("myKey","My test value"); 

@Html.DropDownList("SomeDropDown", new SelectList(myDict, "key", "Value"), 
        "--- Select tomething ---", new { @class = "myHtmlClassName" }) 
Смежные вопросы