Forums Neueste Beiträge
 

AddHandler-Zuweisung (für ein UserControl) nach dem Page_Load ändern?

27/02/2009 - 11:39 von Ralf Kaiser | Report spam
Hallo,

ich erzeuge in einer Seite einige UserControls dynamisch über LoadControl().
Diese Usercontrols haben einige Events definiert für die ich per AddHandler
Methoden zuweise die dann aufgerufen werden wenn im Usercontrol ein
"RaiseEvent xxx()" aufgerufen wird. Das funktioniert auch sehr gut.

Eines dieser Usercontrols ist ein allgmeiner Dialog der an verschiedenen
Stellen in der Seite aufgerufen werden soll. Über das Event soll das
Dialogergebnis an die Seite übermittelt werden. Dazu muss ich dafür sorgen,
dass bei einem Aufruf per Buttonclick "Methode1()" als Eventhandler
aufgerufen wird und bei einem anderen Aufruf per Buttonklick "Methode2()".

Wenn ich nun das AddHandler, im Klick-Eventhandler des Buttons, kurz vor dem
Aufruf des UserControls-Dialogs ausführe, also NICHT in Page_Load, dann wird
der betreffende Eventhandler nicht ausgeführt.

Kann man AddHandler Aufrufe nur in Page_Load ausführen und hinterher nicht
mehr àndern? Ich vermute, dass die AddHandler-Zuweisung wàhrend der
erstellung der Seite als JavaScript-Aufruf in die Seite gerendert wird, ist
das richtig? Das würde dann erklàren, warum eine spàtere Zuweisung nichts
mehr bewirkt.

Danke schon mal,
Ralf
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
27/02/2009 - 12:49 | Warnen spam
Hallo Ralf,

"Ralf Kaiser" schrieb:

Wenn ich nun das AddHandler, im Klick-Eventhandler des Buttons, kurz vor dem Aufruf des UserControls-Dialogs ausführe, also NICHT
in Page_Load, dann wird der betreffende Eventhandler nicht ausgeführt.



Kann er auch nicht. Schau Dir mal den Lebenszyklus von ASP.NET an, dann siehst
Du auch, warum.

http://msdn.microsoft.com/de-de/lib...78472.aspx
http://www.aspnetzone.de/blogs/pete...gramm.aspx

Kann man AddHandler Aufrufe nur in Page_Load ausführen und hinterher nicht mehr àndern?



Doch. Das bringt nur nichts mehr, weil die Postbackverarbeitung (und damit bspw.
auch die Erkennung, dass ein Button geklickt wurde) an der der Stelle schon
abgeschlossen ist.

Ich vermute, dass die AddHandler-Zuweisung wàhrend der erstellung der Seite
als JavaScript-Aufruf in die Seite gerendert wird, ist das richtig?



Ne. Das hat damit nichts zu tun.

In deinem Fall wàre es sinnvoller, einen EventHandler zu haben und bspw.
anhand eines Arguments zu unterscheiden, was dann letztendlich gemacht
werden soll.

So ganz hab ich dein Schema allerdings nicht verstanden, daher kann ich
Dir auch kein konkretes Beispiel geben. Poste doch mal bitte ein paar mehr
Details zu deinem gewünschten Ablauf.

Button1_Click
-> Aufruf Dialog
-> ???

Button2_Click
-> Aufruf Dialog
-> ???

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen