2010-11-02 10 views
24

Sto usando ASP.NET 3.5 e ho usato prima 1.1 ho difficoltà a trovare dove posso allegare/dichiarare l'evento init della pagina?evento page_init ASP.NET?

In 1.1 c'era un codice generato automaticamente che utilizzava il codice di inizializzazione. Dove possiamo aggiungere il metodo init della pagina. Quindi sono confuso per favore aiuto.

risposta

43

Proprio dichiararlo nel codice dietro:

protected override void OnInit(EventArgs e) 
    { 
     base.OnInit(e); 
    } 
+1

Ma per l'allegato di eventi dobbiamo fare qualcosa come page.OnInit + = evnetHnaglerName (Mittente , EventArgs) dove è dichiarato ...? quello è dove sono più confuso. –

+0

no, perché stai sovrascrivendo il metodo. Questo è tutto per te. – kemiller2002

+0

Non è come 1.1 dove puoi vedere il codice. Ne hanno nascosto molto nell'altra parte della classe parziale. – kemiller2002

0

è possibile aggiungere il metodo page_init nel file CS della pagina. Ad esempio, se hai Default.aspx puoi inserire il metodo in Default.aspx.cs

Quando crei una pagina in VS, avrai il metodo Page_Load creato per te. Puoi inserire il tuo codice page_init & altro codice per la pagina nel file CS.

PS: se si utilizza VB come il codice lato server, si dovrà mettere nel file VB

0

Non è diverso in ASP.NET 3.5 - c'è una pagina code-behind in cui puoi dichiarare/allegare l'evento OnInit.

Per visualizzare il codice, fare clic con il tasto destro del mouse sul file in Solution Explorer e selezionare View code.

6

Non è necessario associare l'evento. Basta creare un gestore eventi per esso, e sarà legato automaticlaly:

protected void Page_Init(object sender, EventArgs e) { 
    ... 
} 
60

ASP.NET 2.0 ha cambiato il modello di progettazione/compilation predefinita.

Per impostazione predefinita AutoEventWireup è impostata su true, che indica compilatore automaticamente collegare i gestori di eventi dal codice che sta dietro all'uso di denominazione convenzione, in modo che quando si scrive:

protected void Page_Load(...) 
{ 

} 

mette automaticamente questo codice in dietro le quinte:

this.Load += new EventHandler(this.Page_Load) 

Ciò è stato già fatto da InitialiseComponent() (credo).

Tuttavia, la risposta è di scrivere il codice da soli:

protected void Page_Init(object sender, EventArgs e) 
{ 
    // do the bartman 
} 
+6

+1 per Autoeventwireup – Pankaj

+0

L'unico problema è che non è disponibile il completamento automatico su questo. Devi conoscere la sintassi esatta del gestore eventi. – FrenkyB

0

basta aggiungere te stesso con la firma

protected void Page_Init() 
{ 
    // 
} 
2

Per coloro che utilizzano asp/vb.net è necessario dichiarare in codice dietro come: Sottoindice protetto_Init (ByVal sender come oggetto, ByVal e As EventArgs) Gestisce Me.Init

Problemi correlati