Avatar billede roth Nybegynder
27. januar 2004 - 14:30 Der er 2 kommentarer og
1 løsning

Tilknytning af events til dynamisk oprettede imagebuttons

Jeg opretter en stak tablerows + cells i c# code behind, i en af cellerne skal der være en imagebutton. Når den trykkes skal jeg bruge noget info fra en af de andre cells i samme tablerow. Jeg kan ikke bruge datagrid pga. andre omstændigheder, så en table er umiddelbart the way to go.
Det jeg så har forsøgt er at lave en eventhandler der automatisk bliver knyttet til mine imagebuttons, men det ser ikke ud til at virke.
Her er lige lidt kodesnask fra den while løkke der opretter alle rows/cells i min table.
Det data der bliver vist i tabellen tages fra en datatable (dt).

tblSearchResult.Rows[j].Cells.Add(new TableCell());
tblSearchResult.Rows[j].Cells[5].CssClass = "ws_searchres_add";
System.Web.UI.WebControls.ImageButton ibtnAdd= new ImageButton();
ibtnAdd.Click += new System.Web.UI.ImageClickEventHandler(this.tilfoej_click);
ibtnAdd.ID = "btn" + dt.Rows[i].ItemArray[0].ToString();
tblSearchResult.Rows[j].Cells[5].Controls.Add(ibtnAdd);

Jeg ændrer navnet på knappen for at kunne have noget af den information jeg senere skal bruge fra de andre cells, men hvis jeg frit kan tilgå samtlige cells i eventhandleren så er det mig ligegyldigt hvad imagebutton'n hedder.

metoden tilfoej_click er oprettet som følger:

private void tilfoej_click(object sender, System.Web.UI.ImageClickEventArgs e) {
Label4.Text = "pisogpapir";} //ligegyldig test funktionalitet

Problemet er at jeg aldrig kommer ind i eventhandleren så min ligegyldige test funktionalitet bliver aldrig udført :(
Nogen der har nogle gode forslag til hvad der er galt?
Avatar billede sekhmet_ds Nybegynder
27. januar 2004 - 14:48 #1
Jeg har flere gange haft problemer af samme stil, og jeg er kommet frem til at hvis du ikke tilføjer den control der raises en event på i det roundtrip hvor eventen skal køres så bliver den ikke triggeret.

Altså hvis du går ind på en side og den så spytter en knap du der har en server-side click event, så skal den knap også tilføjes til sidens controls når siden udføres efter du har klikket på knappen. Du må altså ikke have noget if (IsPostBack)... som gør at knappen ikke bliver tilføjet.

Håber det gav mening....og en løsning :)
Avatar billede roth Nybegynder
27. januar 2004 - 17:03 #2
Det gav max mening .. fjernede den lille søde if(ispostback) jeg naturligvis havde og vupti så spiller det. Kæft hvor har jeg rodet længe rundt for at få det til at spille hehe.
Mange tak!
Avatar billede sekhmet_ds Nybegynder
27. januar 2004 - 17:19 #3
Tog også mig det meste af en dag samt en gennemlæsning af det meste materiale på MSDN at finde ud af det (ikke at jeg fandt en løsning på MSDN :)).
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