Нужна помощь в связывании данных ArrayList ListItems - PullRequest
1 голос
/ 19 февраля 2009

Я связываю данные с раскрывающимся списком со следующим списком массивов:

ArrayList al = new ArrayList();
al.Add(new ListItem("Service Types", 1));
al.Add(new ListItem("Expense Types", 2));
al.Add(new ListItem("Payment Terms", 3));
al.Add(new ListItem("Classes", 4));
al.Add(new ListItem("Project", 5));
al.Add(new ListItem("Employees", 6));
al.Add(new ListItem("Payroll Codes", 7));

ddlType.DataSource = al;
ddlType.DataBind();

Это приводит к следующему HTML:

<select name="ddlType">
    <option value="Service Types">Service Types</option>
    <option value="Expense Types">Expense Types</option>
    <option value="Payment Terms">Payment Terms</option>
    <option value="Classes">Classes</option>
    <option value="Project">Project</option>
    <option value="Employees">Employees</option>
    <option value="Payroll Codes">Payroll Codes</option>
</select>

Как настроить свойства DataTextField и DataValueField в моем раскрывающемся списке, чтобы значения элементов списка были значениями в раскрывающемся списке?

Ответы [ 4 ]

1 голос
/ 11 июля 2009

Зачем вообще связываться с данными. Вы можете заполнить коллекцию предметов напрямую:

ddlType.Items.Add(new ListItem("Service Types", 1));
...
ddlType.Items.Add(new ListItem("Payroll Codes", 7));

и он даже сделает ваш код на 3 строки короче; -)

0 голосов
/ 19 февраля 2009

Вместо ArrayList с ListItems, почему бы вам не создать Hashtable?

Hashtable hash = new Hashtable();
hash.Add("one", "1")
hash.Add("two", "2")

dd.DataSource = ht
dd.DataTextField = "value"
dd.DataValueField = "key"
dd.DataBind()
0 голосов
/ 11 июля 2009

Вы пытались создать коллекцию ListItemCollection и связать ее с ней?

0 голосов
/ 19 февраля 2009
ddlType.DataTextField = "Text";
ddlType.DataValueField = "Value";
...