列表框选中的项目进入文本框无效

时间:2010-12-22 17:41:25

标签: asp.net vb.net

我的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

3 个答案:

答案 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);