Avatar billede jesperwerge Nybegynder
25. februar 2008 - 19:42 Der 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.

LbxLandsdele = ID på ListBox control

LbxLandsdele.DataSource = ListLandsdele;
LbxLandsdele.DataTextField = "navn";
LbxLandsdele.DataValueField = "LandsdelsID";
LbxLandsdele.DataBind();

for (int i = 0; i < LbxLandsdele.Items.Count; i++)
{
  if (LbxLandsdele.Items[i].Value == ? )
  {
    LbxLandsdele.Items[i].Selected = true;
  }
}
Avatar billede jesperwerge Nybegynder
25. februar 2008 - 19:54 #1
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.

Håber dette kan kaste lidt lys over det :)

/Werge
Avatar billede jesperwerge Nybegynder
25. februar 2008 - 19:58 #2
for (int i = 0; i < LbxLandsdele.Items.Count; i++)
{
  if (LbxLandsdele.Items[i].Value == redPartner.Landsdele.Find(?))
  {
    LbxLandsdele.Items[i].Selected = true;
  }
}
Avatar billede powerpunk Nybegynder
26. februar 2008 - 08:44 #3
Hvad med noget i retning af:

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...
Avatar billede jesperwerge Nybegynder
26. februar 2008 - 17:02 #4
hej powerpunk,

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();
  }
}
Avatar billede jesperwerge Nybegynder
26. februar 2008 - 17:22 #5
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();
    }
  }
}
Avatar billede jesperwerge Nybegynder
10. marts 2008 - 18:07 #6
powerpunk - vil du smide et svar, så du kan få lidt points?
Avatar billede powerpunk Nybegynder
11. marts 2008 - 09:37 #7
jeps... Svar! :^)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester