我的vb.net不会使用listbox1.selecteditems,即使我在网上搜索每个人都使用它,它总会在下面出现蓝线。
我的目标是获取所选项目并将其列在文本框中
Protected Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim li As ListItem
For Each li In ListBox1.Items
If li.Selected Then
TextBox1.Text &= li.Text & vbCrLf
End If
UpdatePanel2.Update()
Next
End Sub
End Class
答案 0 :(得分:3)
确定多选列表控件中的选择
遍历控件的Items集合并测试每个项目的Selected属性。
For Each li In ListBox1.Items
If li.Selected Then
TextBox1.Text &= li.Text & vbCrLf
End If
Next
MSDN: To determine the selection in a multi-selection list control
在ASP.Net中没有SelectedItems,此属性exists仅适用于Winforms-Listbox控件。
答案 1 :(得分:0)
我认为这里的问题是您在尝试从中检索选定值之前立即绑定到控件。当控件最初绑定到数据源时,它将没有任何选定的项目。
您需要将其拆分,以便在加载页面时绑定列表框,然后用户在该框中选择一些内容,单击Button2,并在回发时更新文本框的值。
首先,在页面加载:
Protected Sub Page_Load(object sender, EventArgs, e)
listcmd.Connection = conn1
conn1.Open()
listcmd.CommandText = "SELECT distinct B603SalesAsOFMASTER.SDESCR FROM B603SalesAsOFMASTER"
listda.Fill(saolist, "listboxtext")
Dim dt As DataTable = saolist.Tables("listboxtext")
ListBox1.DataSource = dt
ListBox1.DataValueField = "SDESCR"
ListBox1.DataMember = "SDESCR"
ListBox1.DataBind()
conn1.Close()
End Sub
然后,当用户单击Button2
时,将运行此代码Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
For i As Integer = 0 To ListBox1.SelectedItems.Count - 1
TextBox1.Text &= DirectCast(ListBox1.SelectedItems(i), DataRowView)(1).ToString & vbCrLf
Next
CheckBox1.Visible = True
TextBox1.Visible = True
End Sub
答案 2 :(得分:0)
查看(文本框中的文字项目)
textbox3.Text = listBox1.GetItemText(listBox1.SelectedItem);