Avatar billede cdull Nybegynder
24. maj 2007 - 11:05 Der er 4 kommentarer og
1 løsning

Usercontrol event i anden usercontrol fanges ikke

Jeg har en main.aspx side som ved et button click loader en usercontrol i en placeholder.

Control1 con = (Control1)Loadcontrol("Control1.ascx");
Placeholder.controls.add(con);

Den ryger fint ind.
Usercontrol Control1 loader på samme måde endnu en usercontrol, SubControl1 som har en button og en button event on click.

Når jeg klikker denne button i SubControl1 raiser den ikke Button_Click event. Men nærmest tømmer de placeholders jeg har.


Nogle forslag?
Og kan man loade usercontrols, i en usercontrol ?
Avatar billede neoman Novice
24. maj 2007 - 11:26 #1
Jeg har ikke prøvet det du laver før, men her et gæt :

Efter du har trykket på din første button, reloader du userkontrollen efterfølgende også ved postback ? Hvis du ikke gør, så kunne det være en forklaring på hvad der sker  - når din SubControl1 trigger en postback, så er der ingen Control1 mere (da den ikke persisteres på nogen måde), og derfor heller ingen subcontrol1 og derfor heller ingen Button til at gifte med event handleren:)

Alt dette under forudsætning af, at der ikke er noget i vejen for "nestede" user control loads (det aner jeg intet om). :)
Avatar billede cdull Nybegynder
24. maj 2007 - 13:33 #2
Jeg tror sku at du har en pointe.
Jeg har lige testet det, og smidt den i page_load i stedet for en button event så den loades hver gang.
Tænk jeg troede at når den var loaded, VAR den loaded.

Button event i SubControl raises nu.

Men har du en ide til hvordan jeg får persistence i den placeholder så jeg ikke mister den control ?
Eller er det bedst at jeg laver et nyt svar.

Anyways, skal du lige smide et svar og have tak for hjælpen.
Avatar billede neoman Novice
24. maj 2007 - 14:01 #3
Alt hvad du loader dynamisk, og derfor ikke har fast deklareret i aspx-filen, lever kun indtil næste postback. Pudsigt nok så overlever kontrollens viewstate, og hvis du genloader kontrollen, og den har samme ID som forudgående gang (eller autogenereret id, som så også skal være den samme, hvilket opnås ved at loade dynamiske kontroller i samme rækkefølge fra gang til gang) - så bliver viewstate og kontrol lykkeligt genforenet :)

Du kan ikke få persistence i placeholderen (eller andre steder) - du skal genloade kontrollen ved postback.  Men du kan jo f.eks. have et skjult felt på din side, som husker at du har trykket på knappen, og i din pageload tjekke værdien på feltet og genloade kontrollen på den måde.
Avatar billede neoman Novice
24. maj 2007 - 14:07 #4
Et muligt  alternativ kunne måske være at have den der permanent, men usynlig, men gøre den synlig ved tryk på din knap.
Avatar billede cdull Nybegynder
24. maj 2007 - 14:23 #5
Jeg følte at det rigtigste var at oprette et nyt spørgsmål omkring emnet.
Gider du kopiere din tekst herfra, og smide et svar derinde? Så andre også kan få nytte af det hvis det virker for mig ?

thanks.

http://www.eksperten.dk/spm/779966
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