07. juli 2005 - 15:55Der er
21 kommentarer og 1 løsning
Listbox items kan ikke blive sat selected
Jeg sidder og laver en dynamisk webform hvor jeg henter oplysninger fra database. I listboxen bliver der tilføje elementer og de elementer som passer til det der ligger i databasen skal sættes som selected.
Public Sub HentListTilknytning(ByVal Type As String) DB.SQL("SELECT * From " + Type) While DB.Reader.Read() Me.ListTilknytningstype.Items.Add(New ListItem(Me.ListTilknytning.Items(Me.ListTilknytning.Items.IndexOf(Me.ListTilknytning.Items.FindByValue(Type))).Text & ": " & DB.Reader.GetString(DB.Reader.GetOrdinal("Navn")), DB.Reader.GetInt32(0))) End While DB.Con.Close() End Sub
Private Sub ButtonHent_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonHent.Click
Dim i As Integer DB.SQL("SELECT * FROM AktivitetSamling WHERE AID = " & Me.AID.Value) While DB.Reader.Read() For i = 0 To Me.LISTID.Items.Count - 1 If Me.LISTID.Items(i).Text.ToString = DB.Reader.GetString(DB.Reader.GetOrdinal("Type")).ToString And Me.LISTID.Items(i).Value.ToString = DB.Reader.GetInt32(DB.Reader.GetOrdinal("TypeID")).ToString Then Me.ListTilknytningstype.Items(i).Selected = True Me.ListTilknytningstype.Items.FindByValue(DB.Reader.GetInt32(DB.Reader.GetOrdinal("TypeID"))).Selected = True End If Next End While DB.Con.Close() End If End Sub ------------------
umiddelbart vil jeg sige at det bare er din rutine der ikke funger som den skal så .... hvis du debugger - havner du så på de linier der selected det antal gange du forventer? mvh
Synes godt om
Slettet bruger
07. juli 2005 - 16:08#5
det er ok :)
Jeg har siddet hele natten, gik i seng kl. 8 i morges Jeg fatter det simpelhent ikke
Jeg har testet og testet og for mig giver det ingen mening
Synes godt om
Slettet bruger
07. juli 2005 - 16:09#6
hvis jeg udskriver de index som skal selectes passer det med dem der er i listen
Synes godt om
Slettet bruger
07. juli 2005 - 16:13#7
Det sjove er at:
I webformen har jeg lavet noget tilsvarende der virker.
Forskellenen ligger i at, i den listbox er elementerne hardcoded, og der vil den gerne sætte selected til true.
men i den listbox hvor at elementerne blive lavet dynamisk vil den ikke
(også selvom du lægger koden til at selecte i en eventhandler et sted)
hvornår/hvordan lægger du Items i listboxen ?
mvh
Synes godt om
Slettet bruger
07. juli 2005 - 16:26#9
Jeg tror jeg har sporet mig frem til noget...
jeg har fundet frem til at jeg har en _prerender metode som ændre listbox elementerne efter jeg har selected dem
Synes godt om
Slettet bruger
07. juli 2005 - 16:28#10
Private Sub ListTilknytning_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListTilknytning.PreRender LoopTilknytning() End Sub
Public Sub LoopTilknytning() Me.ListTilknytningstype.Items.Clear() Me.LISTID.Items.Clear() Dim i As Integer For i = 0 To Me.ListTilknytning.Items.Count - 1 If Me.ListTilknytning.Items(i).Selected = True Then HentListTilknytning(Me.ListTilknytning.Items(i).Value) End If Next End Sub
Synes godt om
Slettet bruger
07. juli 2005 - 16:30#11
LoopTilknytning() bliver kaldt efter jeg har selected elementerne
prerender kaldes meget sent (tjah... lige før render :o) - og jeg kan se at du fjerner dine item der : Me.ListTilknytningstype.Items.Clear() prøv lige at kommenter det kode ud - så funger det sikkert. mvh
Synes godt om
Slettet bruger
07. juli 2005 - 16:35#13
jeg har fået det til at virker
jeg har brugt ListTilknytning_SelectedIndexChanged istedet
jeg kender heller ikek rigtig prerender eventen, synes bare den virkede bedre på et tidspunkt end den anden, men nu kan jeg se at den skal man altså forstå før man anvender den :)
og jeps - prerender/render mv er det godt at have styr på... du spørger bare hvis der er noget. mvh
Synes godt om
Slettet bruger
07. juli 2005 - 16:51#21
tak
Synes godt om
Slettet bruger
07. juli 2005 - 16:52#22
tak
Synes godt om
Ny brugerNybegynder
Din løsning...
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.