25. april 2015 - 21:05Der er
6 kommentarer og 1 løsning
Vælge værdi i Listbox
Hej
Dette er VB.NET
Jeg har en listbox, hvor jeg har en række tekster indlæst fra en database via et dataset.
Når brugeren laver en filtrering på listen vil jeg gerne have at den værdi der har været markeret inden filtreringen startede også er markeret efter filtreringen (nyt dataset indlæst), hvis værdien findes.
Her er min kode, men jeg kan ikke få det til at virke.
If ListBox1.Items.Count < 0 Then If ListBox1.Items.Contains(prevItem) Then ListBox1.SelectedValue = prevItem Else ListBox1.SelectedIndex = 0 End If End If
Den ender altid med at vælge den første i listen, dvs. linien "ListBox1.Items.Contains(prevItem)" bliver altid falsk.
Jeg har også prøvet at bruge "prevItem = lbCustomers.SelectedIndex" i stedet, men også uden resultat.
Jeg mener jeg plejer at bruge selectedIndex, det giver bare et problem hvis din datasource er ændret. Det er måske bedre at gemme dens value og så gennemløbe alle items og sætte selected = true hvis values passer sammen.
If ListBox1.Items.Count < 0 Then If ListBox1.Items.Contains(prevItem) Then ListBox1.SelectedValue = prevItem Else ListBox1.SelectedIndex = 0 End If End If
Det hjalp halvvejs. At gøre prevItem til String fik den til at vælge den rigtige.
Men hvis prevItem ikke er en værdi der er gyldig (dvs findes i listyboxen) så blev selectedValue Nothing og så var ingen værdi valgt.
Men har fået det til at virke ved at lave check på om selectedValue er Nothing og så vælge SelectedIndex = 0 (forudsat at der er noget i listboxen overhovedet.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.