Morgen.

Also entweder hat das Framework einen Bug oder Ich ;-) 
Ich bin gerade dabei mit Page.GetPostBackHyperlink usw. einen eigenen
Postback zu veranlassen. In meinem selbst gebastelten "Hello World" geht
das auch einwandfrei. Ich verwende die Methode und durch das hinzufügen
der Schnittstelle IPostBackEventHandler und der RaisePostBackEvent
Methode wird der Klick vollführt.

Jetzt habe ich allerdings eine etwas komplexere Sache wo es nicht geht.
Es handelt sich dabei um ein Menu. Das Menu wird per Javascript
gezeichnet und soll beim Klick auf einen der Buttons den Postback
machen. Die MenuItems sind zwar eigene Controls, die
Page.GetPostBackHyperLink Methode rufe ich allerdings mit einer Referenz
auf das Menü auf. Sprich Page.GetPostBackHyperLink(this.Root, "Eintrag
xy"). Clientseitig steht dann auch im Link die ID des Menüs und ein
Klick darauf macht auch einen Postback.

Allerdings wird dieser Postback vom Framework nicht aufgefangen!!!! Es
passiert einfach gar nichts (außer dem neu laden der Seite). Im Stack
Trace sehe ich, das als EventName das richtige Control (nämlich das
Menü) und als Argument die Bezeichnung des jeweiligen MenuItems
übergeben werden. 

Fragen:
a) Wer kapiert überhaupt nicht was ich da schreibe ;-9
b) Wer hat eine allgemeine Idee?
c) Darf man in einem Kindcontrol den Postback auf das Vatercontrol
legen?
d) Gibt’s Tipps um das zu debuggen? Warum wird die RaisePostBackEvent
nicht aufgerufen?

Bitte helft mir, ich verzweifle...

Noch ein bisschen Code

Serverseitig:
                // Defines the Click event.
                public event CommandEventHandler Click;
      
                // Invokes delegates registered with the Click event.
                protected virtual void OnClick(CommandEventArgs e) 
                {     
                        HttpContext.Current.Response.Write("OnClick im
Menu");
                        if (Click != null) {
                                Click(this, e);
                        }  
                }
      
                // Method of IPostBackEventHandler that raises change
events.
                public void RaisePostBackEvent(string eventArgument)
                {     
        
HttpContext.Current.Response.Write("RaisePostBack im Menu:
EventArgument" + eventArgument + "<br>");
                        CommandEventArgs e = new
CommandEventArgs(eventArgument,null);
                        OnClick(e);
                }

und für das Postback
Page.GetPostBackClientHyperlink(this,"Menu");  // in dem fall sogar im
menu selber (nicht in den Items)

Clientseitig:
onclick="__doPostBack('adminmenu','Benutzerverwaltung')">





_______________________________________________
Asp.net mailing list
[EMAIL PROTECTED]
http://www.glengamoi.com/mailman/listinfo/asp.net

Reply via email to