需要帮助数据绑定ListItems的ArrayList

时间:2009-02-19 15:18:04

标签: asp.net data-binding .net-1.1

我正在使用以下数组列表对下拉列表进行数据绑定:

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 个答案:

答案 0 :(得分:1)

为什么要干扰数据绑定。您可以直接填充项目集合:

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

它甚至会使你的代码缩短3行; - )

答案 1 :(得分:0)

而不是代替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()

答案 2 :(得分:0)

您是否尝试过创建ListItemCollection并绑定到它?

答案 3 :(得分:-1)

ddlType.DataTextField = "Text";
ddlType.DataValueField = "Value";