25. februar 2008 - 19:42Der er
6 kommentarer og 1 løsning
Listbox selected værdier programel sat
Hej
jeg har en Listbox med multilines og her har jeg ud fra en DB udfyldt den med værdier. det ser helt fint ud.
De værdier brugeren vælger gemmes i en reference tabel.
Når brugeren så skal redigere i listen, vil jeg gerne vise alle elementer fa min DB som før, men dem der står i reference tabellen, skal så være selected = true
For at gøre det hele lidt mere spænde er reference tabel værdierne pr bruger styret via en List<T> af en selv lavet class type - dog burdet det vel ikke være det helt store problem, sålange den agere som en List<T>?
kan I hjælpe mig med det?
Min ide er at gennemløbe listen og såfremt feltets value er ens fra reference tabellen, skal den selectes.
arhh en rigtig dårlig forklaring - der kommer lige en bedre her.
jeg har et objekt (partner) der indeholder en List<T> af et andet objekt (Landsdele)
objektet Landsdele har 3 felter (navn, landsdelsID, partnerRefID) når jeg viser den totale liste af landsdele vil jeg gerne have at de List<Landsdale.LandsdelsID> der findes er selected i Listboxen.
for (int i = 0; i < LbxLandsdele.Items.Count; i++) { if (LbxLandsdele.Items[i].Value == redPartner.Landsdele.Find(?)) { LbxLandsdele.Items[i].Selected = true; } }
for (int i = 0; i < LbxLandsdele.Items.Count; i++) { if (redPartner.Landsdele.Contains(LbxLandsdele.Items[i].Value)) { LbxLandsdele.Items[i].Selected = true; } }
Der skal nok en eller anden slags cast på 'LbxLandsdele.Items[i].Value' inde i 'Contains' kaldet...
jeg havde glemt at min klasse skulle have get og set metoder - dumt, så nu ser min statement således ud, men jeg kan stadig ikke få den til at sige true til selected.
for (int i = 0; i < redPartner.Landsdele.Count; i++) { if (int.Parse(LbxLandsdele.Items[i].Value).Equals(redPartner.Landsdele[i].landsdelRefID)) { LbxLandsdele.Items[i].Selected = true; lblStatus.Text += LbxLandsdele.Items[i].Value.ToString(); } }
Tja så fandt jeg løsningen, den skal igennem 2 loops, for at find den rigtige: foreach (landsdele Li in redPartner.Landsdele) { for (int i = 0; i < LbxLandsdele.Items.Count; i++) { if (int.Parse(LbxLandsdele.Items[i].Value) == Li.landsdelID) { LbxLandsdele.Items[i].Selected = true; lblStatus.Text += LbxLandsdele.Items[i].Value.ToString(); } } }
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.