Avatar billede Slettet bruger
19. oktober 2005 - 11:53 Der er 8 kommentarer og
1 løsning

Flere kontroller - dele den samme eventhandler

Er det muligt at generere feks. en tekstboks-kontrol on-the-fly for hver række i et dataset og samtidig asigne et unikt id til textboksen og en eventhandler som er fælles for alle tekstboksene?

Tanken er at tekstboksene skal have autopostback og at checked eller unchecked skal afføde en opdatering af en virksomheds status i databasen.
Avatar billede imago-dei Nybegynder
19. oktober 2005 - 12:06 #1
Mener du CheckBox? En tekstboks kan ikke være checked.

CheckBoxe har en event som hedder CheckedChanged, er det ikke den du vil bruge? Du kan evt uddybe hensigten med programmet.
Avatar billede Slettet bruger
19. oktober 2005 - 12:52 #2
Sorry :-)
Jo, CheckBox selvfølgelig.

Hensigten er den, at alle kunder skal hentes ud fra et DataSet, listes i en tabel med firmanavnet. Ud for selve firmanavnet (i en anden celle), skal så vises en checkbox med id sat til det givne kundenummer og med autopostback sat til true.

Når man checker eller unchecker en given checkbox i listen skal der kaldes en eventhandler metode der sørger for opdateringen af kundens status i systemet.

Jeg har fået den til at generere en chackbox for hver række så dette er ikke umiddelbart et problem.

CheckBox checkbox_Status = new CheckBox();
checkbox_Status.ID = DataSet.Tables......Rows[i]["Kundenummer"];
checkbox_Status.AutoPostBack = true;

Men jeg kan bare ikke få den til at nå en eventuelt eventhandler-metode der sender oplysningerne om status videre i systemet.
Er vandt til at bruge Visual Studios generering af eventhandlers, så jeg kan ikke lige komme på hvordan man opretter sådan én og hvordan man så assigner samtlige checkboxe til den samme eventhandler (der jo så nødvendigvis skal modtage checkboxens id også).
Avatar billede imago-dei Nybegynder
19. oktober 2005 - 15:34 #3
Hvis det kun er checkboxen, som der kan redigeres i, så kan du bruge checkboxens CheckedChanged event. Det er en event som alle checkboxe har, og som bliver kaldt når du checker eller un-checker en checkbox. Dermed er det ikke nødvendigt at oprette en speciel eventhandler.
Avatar billede Slettet bruger
19. oktober 2005 - 20:54 #4
Ok. Hvordan implementeres det sådan helt konkret?
Jeg kan som sagt godt få den til at liste et antal checkboxes med autopostback ud fra posterne i dataset, men der sker ikke rigtig så meget når jeg klikker (andet end siden loader).

Jeg har så forsøgt at trække en checkbox ind i design view og dobbeltklikke på den fpr at lave en event-handler, men den forsvinder jo når jeg fjerner checkboxen igen :-)
Avatar billede Slettet bruger
19. oktober 2005 - 20:56 #5
Ok, jeg tror jeg er ved at fange hvor du vil hen.
Jeg kan se at checkboxen jeg opretter i koden har egenskaben CheckedChanged. Er det den du mener jeg skal associere den med og evt. hvordan kan jeg gøre det?
Avatar billede Slettet bruger
19. oktober 2005 - 21:19 #6
Hej igen. Det er ved at blive en dårlig vane det med at skrive med sig selv.

Nå, men jeg fandt ud af at man kan lave en eventhandler direkte fra code-behind filen ved at benytte tab-tasten når man har valgt attributten CheckedChanged.

checkbox.CheckedChanged += new EventHandler(checkbox_CheckedChanged);

Det virker med en Response.Write(); men hvordan får man overført det unikke ID fra checkboxen sådan at kun den relevante række i databasen bliver opdateret?
Avatar billede imago-dei Nybegynder
20. oktober 2005 - 10:59 #7
eventen har to parametre: sender og e. Sender er den checkbox, som har startet eventen. Dvs. du kan typecaste sender til en checkbox:

CheckBox c = (CheckBox)sender;

Derefter henter du checkboxens id således:

string id = c.ID;

Derefter skal checkboxens status skrives til databasen.
Avatar billede Slettet bruger
20. oktober 2005 - 11:22 #8
Supercool :-)
Tak for hjælpen!

Smider du lige et svar imago-dei?
Avatar billede imago-dei Nybegynder
20. oktober 2005 - 12:48 #9
Velbekomme. Her er et 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