【问题标题】:How to auto populate a ListBox?如何自动填充列表框?
【发布时间】:2016-05-19 02:41:28
【问题描述】:

我正在使用 VB,我有一个网格视图,您可以在其中检查编辑或删除按钮。

'我有一个列表框,用户可以在其中选择多个项目 红色的 蓝色的 绿色

从列表框中取出所有选定的项目并添加 br 标记

Dim t As String = ""
For Each item As ListItem In listbox.Items
    If item.Selected Then
        t += item.Text + " " + " <br/> "
    End If
Next

在数据库中插入字符串't'

Dim insertQuery As String = "INSERT [myTable] ([col1]) VALUES (@col1)"
Dim sqlConn As New SqlConnection(myConnectionString)
sqlConn.Open()
Dim cmd1 = New SqlCommand(insertQuery, sqlConn)
cmd1.Parameters.AddWithValue("@col1", t)
cmd1.ExecuteNonQuery()

问题:当用户单击编辑按钮时,我希望自动填充列表框。当我运行它时,它不会自动选择项目。如果它是一个文本框或单选按钮,那么它会正常工作。它只是不适用于列表框。

' This function is when user check on edit button on gridview 
Protected Sub edit_Click(ByVal sender As Object, ByVal e As ImageClickEventArgs)
    listbox.Text = gvrow.Cells(3).Text.Replace("&nbsp;", "").Replace(" <br/>", "")
    Me.ModalPopupExtender2.Show()
End Sub

【问题讨论】:

    标签: vb.net listbox


    【解决方案1】:

    您应该使用ListBox 控件的SetSelected 方法。

    试试这个:

    'You probably need to clear anything selected first.
    listbox.ClearSelected()
    Dim tempString() As String = gvrow.Cells(3).Text.Replace("&nbsp;", "").Split("<br/>")
    For Each s As String In tempString
        listbox.SetSelected(listbox.Items.IndexOf(s.Trim()), True)
    Next
    

    编辑:
    我添加了一个修剪,希望能与你的列表相匹配。由于您要添加 HTML 标记,因此一些空格可能会阻止它在您的 ListBox 中找到匹配项。您必须对此进行调整,但我确认它确实有效。这是假设我正确理解你的问题:)

    总结您的问题:
    您有一个包含静态项目的ListboxListbox.SelectionMode 设置为 MultiSimpleMultiExtend

    您希望能够将字符串传递给Listbox,表示应选择或突出显示的内容。

    【讨论】:

      猜你喜欢
      • 2020-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-25
      • 2015-07-04
      相关资源
      最近更新 更多