Wenn eine Web-Steuerung zu schaffen, sollten Sie OnLoad außer Kraft setzen oder Page_Load implementieren

StackOverflow https://stackoverflow.com/questions/147033

  •  02-07-2019
  •  | 
  •  

Frage

Wenn Sie eine neue Web-Benutzerkontrolle in Visual Studio es standardmäßig fügt das Ereignis Page Load. Was ist der Vorteil, dies zu verwenden, anstatt das Überschreiben der Basis OnLoad Ereignis auf der Kontrolle? Ist es nur, dass die Page_Load Ereignis ausgelöst wird, bevor OnLoad?

War es hilfreich?

Lösung

Die OnLoad Methode sollte der Ort sein, wo das Load Ereignis ausgelöst wird. Ich persönlich versuche immer, das Ereignis zu behandeln, wenn ich um die Erhöhung der Veranstaltung zusätzliche Verarbeitung benötigen zu tun.

Ich empfehle das Ereignis selbst unter normalen Umständen der Handhabung.

Andere Tipps

Sie können diese Artikel auf der Seite Lebenszyklus von Microsoft rel="nofollow nützlich.

Wie Sie oben sehen können, ist es meist auf persönliche Wahl nicht kommen, wenn diese Wahl sachkundig gemacht wird. Der beste schnell, aber solider Überblick ich gesehen habe, ist unter http://weblogs.asp.net/infinitiesloop/archive/2008/03/24/onload-vs-page-load-vs-load-event.aspx

Es ist wirklich nur eine Frage der Wahl. Mir scheint es seltsam für ein Objekt ein Ereignis an sich selbst anzubringen, vor allem, wenn eine Methode gibt es Sie außer Kraft setzen kann.

Ich denke, die ASP.NET Team-Events verwendet, da, dass das Modell für Global.asa in ASP war, und die Messlatte für Entwickler zu senken, die nicht verstehen Vererbung und übergeordnete virtuelle Methoden.

die Methode Aufschalten erfordert mehr Wissen über die Seite Lebenszyklus, aber es gibt nichts „falsch“ mit ihm.

Lesen Sie den Abschnitt genannt: "Die Bindung Seite Event" auf der MSDN-Seite mit dem Titel: "ASP.NET-Webserversteuerereignismodell" ( Link zu der Seite ) Es gibt einige nützliche Aussagen wie diese:

  

Ein Nachteil der AutoEventWireup Attribut ist, dass es erfordert, dass die Seite Event-Handler haben spezifische, vorhersehbare Namen. Dies schränkt die Flexibilität, wie Sie Ereignishandler nennen. Ein weiterer Nachteil ist, dass Leistung negativ beeinflusst , da ASP.NET für Methoden zur Laufzeit sucht. Für eine Website mit hohem Verkehrsaufkommen, könnten die Auswirkungen auf die Leistung von Bedeutung sein.

( AutoEventWireup Flag schaltet solche Methoden wie Page_Load)

Auch wenn Sie von UserControl sind vererben, ich glaube, Sie weg von Überschreiben der geschützten Methoden bleiben sollten, wenn Sie nicht haben. Die Page_Load gibt es, um es einfacher für Sie den Code hinzuzufügen, die Ihre UserControl spezifischen ist.

Nur außer Kraft setzen OnLoad, wenn Sie die absolute Kontrolle über benötigen, wenn (/ if) das Load Ereignis ausgelöst wird (was selten sein sollte, IMO).

Ich denke, es ist das gleiche. IMHO, mit Veranstaltungen, haben Sie ein wenig mehr Flexibilität, da Sie mehr als einen Zuhörer zu Ihrem Ereignisse passieren können!

Ich denke, es eine potenziell signifikanter Unterschied in den beiden Methoden ist.

Was ich beziehe mich auf die Fähigkeit, die Kontrolle über die Ausführungssequenz zu haben.

Wenn Sie überschreiben, wissen Sie, wenn die Basisklassen laden stattfinden wird, weil Sie es fordern. Dies sorgt für mehr Kontrolle, aber wahrscheinlich ist eine schlechte Sache, so viele werden argumentieren.

Wenn Sie Ereignis verwenden, haben Sie keine Garantie in Bezug auf die Reihenfolge des Aufrufs. Dies zwingt Sie Load-Ereignis zu schreiben, die über Agnostiker sein sollte, was Superklassen während Ladephase tun. Ich denke, das wäre der bevorzugte Ansatz sein und vielleicht deshalb VS automatisch generierten Code ist auf diese Weise.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top