2011-12-08 20 views
5

Entrambe Page_PreRender e Page_Load non funzionano nella Pagina master con cui lavoro. Page_Init, tuttavia, per qualsiasi motivo. AutoEventWireup è impostato su true.PreRender nella pagina principale ASP.NET che non funziona

public partial class MyMaster : MasterPage 
{ 
    public MyMaster() 
    { 
     // tried this too, but doesn't matter whether this LoC 
     // is there or not 
     this.PreRender += Page_PreRender; 
    } 

    protected void Page_PreRender(object sender, EventArgs e) 
    { 
     // does not fire 
    } 
} 

ho provato in un progetto Web vuoto pure. Lì funziona bene.

Edit: ho capito che l'impostazione EnableViewState a true lo fissa:

<%@ Master Language="C#" MasterPageFile="~/MainMaster.master" AutoEventWireup="true" 
    CodeBehind="MyMaster.master.cs" Inherits="MyMaster" EnableViewState="false" %> 

Ma io non voglio il ViewState sia abilitato. Anche l'override di OnPreRender funziona, indipendentemente dal valore di EnableViewState. Ora mi chiedo perché, e usare la modalità di override sembra un hacky per me. Qualcuno può aiutare?

+0

perché ti aspetti che il metodo Pool venga chiamato all'interno della classe myMaster? –

+0

Siamo spiacenti, questo è il costruttore. Copia + incolla-fallisce durante la copia del codice da diverse finestre nel post. –

+1

chiami una pagina che fa riferimento alla tua pagina principale? – slfan

risposta

-1

Suggerisco di usare AutoEventWireup nella direttiva di pagina, quindi prego quindi di provare come di seguito:

Nella direttiva di pagina <%@ Page ..., utilizzare AutoEventWireup="true" e nella tua pagina master, rimuovere abbonamento PreRender evento:

public MyMaster() 
{ 
    // tried this too, but doesn't matter whether this LoC 
    // is there or not 
    //this.PreRender += Page_PreRender; 
} 

Spero che tutto vada bene, grazie per il tuo tempo.

Edit: Si prega di controllare nel file web.config e verificare che AutoEventWireup non è impostato su False.

+0

Grazie a te Elias. Purtroppo non lo è ancora. Ho ricontrollato il mio codice e tutto è come hai suggerito. –

+0

Questo è assolutamente assurdo @Mudu, dovresti provare prima e fammi sapere, grazie per il tuo tempo. –

+0

Dobbiamo esserci fraintesi l'un l'altro. Ho davvero provato quello che hai scritto, ma non funziona. Inoltre, non ho votato la tua risposta, nel caso ti sentissi offeso. –

Problemi correlati