2009-08-20 5 views
1

Ich migriere von ASP.NET 1.1 und abonniere Seitenereignisse mithilfe des Designers, der Subskriptionen für die InitializeComponent-Methode auf der Seite hinzufügt.So abonnieren Sie Seitenereignisse in der Webanwendungsseite

In ASP.NET 2.0, wie kann ich Seitenereignisse vom Designer abonnieren?

Ohne Designer scheint dies zu funktionieren.

protected void Page_Init(object sender, EventArgs e) { 
    // The code, no safety here, just convention 
} 

// OR 

protected override void OnInit(EventArgs e) { 
    base.OnInit(e); 
    // The code 
} 

Was ist die empfohlene Methode zum Abonnieren von Seitenereignissen? Die gleiche Frage gilt für die MasterPage.

Zusätzlich, was ist der beste Weg, um Ereignisse auf dem UserControl zu abonnieren? Wenn ich das Page_XXX auf dem Benutzersteuerelement deklariere, wird das Ereignis viele Male aufgerufen.

+0

Stoppen Sie mit dem Designer .... ernst. – FlySwat

+0

Ich nicht, wirklich :). Ich möchte nur die beste Möglichkeit finden, Ereignisse zu abonnieren, ohne die Möglichkeit eines Fehlers (der Handler wird nicht mehr als einmal aufgerufen oder aufgerufen). Bis jetzt ist Abonnement vom Konstruktor das Beste. Aber ich muss das Ereignis so benennen, wie es nicht automatisch verdrahtet ist. –

Antwort

3

Seiten unterstützen automatisch ereignisgesteuert, dh ASP.NET sucht nach Methoden mit bestimmten Namen und führt diese Methoden automatisch aus, wenn bestimmte Ereignisse ausgelöst werden. Wenn das AutoEventWireUp-Attribut der Page-Direktive auf true gesetzt ist (standardmäßig ist es wahr - asp.net 2.0), werden Seitenereignisse automatisch an Methoden gebunden, die die Namenskonvention von Page_Event verwenden, z. B. Page_Load, Page_PreInit, Page_Init usw.

void Page_PreInit(){ 

} 
void Page_Init(){ 

} 

EDIT:

@Dmitriy: Also nur die Methodennamen Angelegenheiten?

Ja

@Dmitriy: Auch wie Sie es abonnieren Sie von Designer an Veranstaltungen?

Sie können Seitenereignisse nicht über Designer abonnieren.

Siehe dieses Beispiel: Wie Ereignishandler für Seitenereignisse hinzugefügt werden, wenn AutoEventWireUp falsch ist?

public _Default() //Constructor 
    { 
     this.Load += new EventHandler(_Default_Load); 
    } 

    void _Default_Load(object sender, EventArgs e) 
    { 

    } 
+0

Ich weiß, dass ich die gleiche Probe wie Sie in der Frage angegeben haben. Es beantwortet nichts. Wie kann ich im ASP.NET 2.0 Seitenereignisse vom *** Designer *** aus abonnieren? Was ist die empfohlene Methode zum Abonnieren von Seitenereignissen? –

+0

In der Tat vermeide ich die Verwendung von zwei Argumenten Event-Handler. – adatapost

+0

Ich habe das nicht erwähnt. Es kommt also nur auf den Methodennamen an? Wie abonnierst du auch Events ** von Designer **? –

Verwandte Themen