Avatar billede repsak Nybegynder
21. september 2003 - 00:34 Der er 21 kommentarer og
1 løsning

Gennemløbe en checkboxlist

Jeg har noget så simpelt som en CheckBoxList som jeg skal gennemløøbe og udskrive den hvis den er valgt. Men jeg kan ikke finde ud af det...

for(int i=0; i<box.Items.Count; i++){
  if(box.Items[i].Selected){
    Response.Write(box.Items[i].ToString());
  }
}

virker ikke
Avatar billede odegaard Nybegynder
21. september 2003 - 00:48 #1
Hvad virker så ikke? Får du en fejl eller sker der ikke noget ?
Avatar billede repsak Nybegynder
21. september 2003 - 00:52 #2
der sker ikke noget
Avatar billede arne_v Ekspert
21. september 2003 - 00:52 #3
Lidt mystisk fordi docs indeholder:


        // Iterate through the Items collection of the CheckBoxList
        // control and display the selected items.
        for (int i=0; i<checkboxlist1.Items.Count; i++)
        {

            if (checkboxlist1.Items[i].Selected)
            {

              Message.Text += checkboxlist1.Items[i].Text + "<br>";

            }

        }
Avatar billede odegaard Nybegynder
21. september 2003 - 00:52 #4
Prøv at udskrive .Text i stedet:
Response.Write(box.Items[i].Text);
Avatar billede repsak Nybegynder
21. september 2003 - 00:54 #5
arne_v -> ja min kode er også tyvstjålet derfra

odegaard -> prøver lige
Avatar billede odegaard Nybegynder
21. september 2003 - 00:55 #6
Hmm en test viste at det ikke ændrede noget. Eksemplet i docs (http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemwebuiwebcontrolscheckboxlistclasstopic.asp) virker nu fint.
Avatar billede odegaard Nybegynder
21. september 2003 - 00:55 #7
er du sikker på at for-løkken i det hele taget bliver kaldt ?
Avatar billede repsak Nybegynder
21. september 2003 - 00:57 #8
jeg har prøvet at udskrive før og efter løkken og den er fin... Men jeg må lige se efter fejl...
Avatar billede arne_v Ekspert
21. september 2003 - 00:59 #9
Prøv at outputte:
  checkboxlist1.Items.Count
lige før for løkken og
  checkboxlist1.Items[i].Selected
som det første i for løkken.
Avatar billede repsak Nybegynder
21. september 2003 - 01:02 #10
5
FalseFalseFalseFalseFalse
Avatar billede arne_v Ekspert
21. september 2003 - 01:06 #11
Så kunne man jo fristes til at tro at ingen var valgt.

:-)
Avatar billede repsak Nybegynder
21. september 2003 - 01:08 #12
You say something, problemet er jo bare at der ER valgt nogle ;-)
Men jeg må jo nok indse at jeg kludrer et sted
Avatar billede arne_v Ekspert
21. september 2003 - 01:14 #13
Et eller andet sted må det være gået galt i browser-server samspillet.
Avatar billede repsak Nybegynder
21. september 2003 - 01:17 #14
hvor ved du fra at jeg laver asp.net og ikke c#-standalone? :-)
(og ja du har nok ret)
Avatar billede arne_v Ekspert
21. september 2003 - 01:18 #15
System.Web.UI giver mig browser associationer !  :-)
Avatar billede repsak Nybegynder
21. september 2003 - 01:21 #16
hahahaha sørens da også
Avatar billede odegaard Nybegynder
21. september 2003 - 12:07 #17
Det er ikke sådan et du opretter box-items i dit page-load event, uanset om du laver postback eller ej? I så fald bliver valgene annulleret, inden dit onchange event bliver kaldt.
Avatar billede repsak Nybegynder
22. september 2003 - 08:37 #18
hmmm det er ikke utænkeligt (har ikke min kode her)... Hvad skal jeg ellers gøre? box-items bliver indlæst fra en DB
Avatar billede odegaard Nybegynder
22. september 2003 - 12:57 #19
Ah tænkte det nok. Du laver nok en DataBind() i din Page_Load. Den går ikke. Du skal lave et tjek for om det er postback. Fx. kan du indsætte dette i Page_Load:
If Not Page.IsPostBack() Then
  [fetch data]
  DataBind()
End If
Avatar billede repsak Nybegynder
22. september 2003 - 17:17 #20
hvorfor ikke placere den i Page_Init?
eller...? Jeg ønsker at opdatere listen efter hver postback
Avatar billede odegaard Nybegynder
23. september 2003 - 20:33 #21
Fordi når du opdaterer listen, så overskriver du om felterne er checked!
Avatar billede odegaard Nybegynder
23. september 2003 - 20:34 #22
...i så fald må du først tjekke, og derefter databinde. Du kan jo evt. kalde en databind funktion når du er færdig med at processere dit onchange-event
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
Kurser inden for grundlæggende programmering

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