2016-05-19 4 views
0

Ich benutze VB und ich habe eine Gridview, wo Sie die Schaltfläche Bearbeiten oder Löschen überprüfen können.Wie man eine ListBox automatisch auffüllt?

‚Ich habe eine Liste Feld, in dem Benutzer-Mehr Artikel rot blau grün

nehmen alle ausgewählten Elemente aus listbox auswählen und br-Tag

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

einfügen diese Zeichenfolge hinzufügen‘ t 'in der Datenbank

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() 

Problem: wenn Benutzer auf den Bearbeitungsschaltfläche klicken, als ich die ListBox automatisch populiere. Wenn ich es ausführe, wählt es die Elemente nicht automatisch aus. Wenn es eine Textbox oder Optionsfelder wären, dann würde es gut funktionieren. Es funktioniert einfach nicht für Listboxen.

' 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 

Antwort

0

Sie sollten die SetSelected Methode der ListBox Steuer werden.

Try this:

'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 

Edit:
ich einen Trimm hinzugefügt, um hoffentlich zu Ihrer Liste bis zu entsprechen. Da Sie HTML-Tags hinzufügen, ist es möglich, dass leere Felder verhindern, dass eine Übereinstimmung in Ihrer ListBox gefunden wird. Sie müssen dies optimieren, aber ich habe bestätigt, dass es funktioniert. Das setzt voraus, ich verstehe Ihre Frage richtig :)

Ihr Problem Fassen wir zusammen:
Sie haben ein Listbox enthält statische Elemente. Listbox.SelectionMode ist auf MultiSimple oder MultiExtend eingestellt.

Sie möchten eine Zeichenfolge an die Listbox übergeben, die angibt, was ausgewählt oder hervorgehoben werden soll.

Verwandte Themen