使用值和文本绑定列表框

时间:2011-01-25 16:36:21

标签: .net asp.net vb.net list drop-down-menu

我正在创建一个像这样的listCollection:

Dim risList As New ListItemCollection
        Dim cUser As New clsUser()
        Dim ds As DataSet = cUser.GetUserRIS(1)
        For Each row In ds.Tables(0).Rows
            Dim li As New ListItem
            li.Text = cLookup.GetxName(row.Item("xCode"))
            li.Value = row.Item("xCode")
            risList.Add(li)
        Next

然后我需要将下拉列表与它绑定

  ddlRIS.DataSource = risList
        ddlRIS.DataBind()

然而我的文字和值在下拉列表中都显示了文字。当我调试上面的代码li.Value = row.Item(“risCode”)正确显示代码,但为什么它不反映我何时尝试将其绑定到下拉列表?

2 个答案:

答案 0 :(得分:1)

您是否在下拉菜单中将DataValueField设置为Text属性?绑定的值是什么属性?

此外,您也可以将项目添加到下拉列表中,而不是构造ListItemCollection并将其绑定到列表中。

最后,作为旁注,ListItem类,当value属性不存储任何内容时,它默认返回文本值。所以我不知道它是否具有约束力,或者这是否发生了......

答案 1 :(得分:1)

为什么不将它直接添加到ListBox / DropDownList作为变通方法,你的方式应该可行。

Dim risList As New ListItemCollection
Dim cUser As New clsUser()
Dim ds As DataSet = cUser.GetUserRIS(1)
For Each row In ds.Tables(0).Rows
    Dim li As New ListItem
    li.Text = cLookup.GetxName(row.Item("xCode"))
    li.Value = row.Item("xCode")
    ddlRIS.Items.Add(li)
Next

现在您可以通过以下方式访问文本和值:(分别)

Dim txt1 As String, val1 As String
txt1 = ddlRIS.SelectedItem.Text
val1 = ddlRIS.SelectedItem.Value

希望有所帮助。