我正在创建一个像这样的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”)正确显示代码,但为什么它不反映我何时尝试将其绑定到下拉列表?
答案 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
希望有所帮助。