3 Stimmen

ASP.Net-Serversteuerungsereignisse Reihenfolge

Welches sind die Ereignisse eines ASP.Net-Server-Steuerelements und wie hängt ihre Reihenfolge mit den Ereignissen der enthaltenen Seite zusammen?

Das konkrete Problem ist, dass ich nach einem Ereignis innerhalb des Server-Steuerelements suche, das vor dem Seite_Laden der enthaltenen Seite.

5voto

Corbin March Punkte 25170

In Bezug auf die Beziehung zu den Seitenereignissen, zumindest für Init und Load:

"Obwohl sowohl Init als auch Load rekursiv auf jedem Steuerelement auftreten, geschehen sie in umgekehrter Reihenfolge. Das Init-Ereignis (und auch das Unload-Ereignis) für jedes untergeordnete Steuerelement tritt ein, bevor das entsprechende Ereignis für seinen Container ausgelöst wird (bottom-up). Das Load-Ereignis für einen Container tritt jedoch vor den Load-Ereignissen für seine untergeordneten Steuerelemente auf (top-down)."

Von http://msdn.microsoft.com/en-us/library/ms178472.aspx

1voto

willasaywhat Punkte 2384

Das sollte helfen: http://msdn.microsoft.com/en-us/library/ms178472.aspx

Sie suchen nach PreLoad, denke ich.

1voto

Craig Punkte 10896

Sehen Sie sich das an Seite . Sie erfahren dann, welche Ereignisse wann ausgelöst werden. Sieht aus, als könnten Sie die PreLoad Veranstaltung.

0voto

TcKs Punkte 24671

Das ist ein kleines Problem, denn das Steuerelement kann nach dem "Page_Load"-Ereignis innerhalb der Seite platziert werden.

In einem meiner historischen Projekte habe ich alle Seiten von meiner Klasse "PageEx : System.Web.UI.Page" abgeleitet. Diese hatte eine Eigenschaft "CurrentState" vom Typ "enum PageStates { PreInit, Init, PostInit, PreLoad, /* etc... */ }". Dann waren alle meine Steuerelemente in der Lage, den Zustand des Seitenzyklus zu erkennen.

0voto

David Thielen Punkte 24913

Eine längere Liste finden Sie unter ASP.NET 2.0 Ereignisreihenfolge (Hinweis: Dies gilt für 2.0).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X