2011-12-08 18 views
5

Cả Page_PreRenderPage_Load không hoạt động trong Trang chính tôi đang làm việc cùng. Tuy nhiên, Page_Init, vì bất kỳ lý do gì. AutoEventWireup được đặt thành true.PreRender trong ASP.NET Master Page không kích hoạt

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 
    } 
} 

Tôi cũng đã thử nó trong một Dự án web trống. Có nó hoạt động tốt.

Edit: Tôi đã tìm ra rằng việc thiết EnableViewState để true sửa nó:

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

Nhưng tôi không muốn các ViewState để được kích hoạt. Ghi đè OnPreRender cũng hoạt động, bất kể giá trị EnableViewState có. Bây giờ tôi tự hỏi tại sao, và chỉ sử dụng cách ghi đè dường như là một hacky với tôi. Ai có thể giúp được không?

+0

tại sao bạn mong đợi rằng phương thức Pool sẽ được gọi ở tất cả bên trong lớp myMaster? –

+0

Xin lỗi, đây là hàm tạo. Sao chép + dán-thất bại trong khi sao chép mã từ một số cửa sổ vào bài đăng. –

+1

bạn có gọi một trang liên quan đến trang cái của bạn không? – slfan

Trả lời

-1

tôi đề nghị sử dụng AutoEventWireup trong chỉ thị trang, vì vậy bạn sẽ hãy thử như sau:

Trong chỉ thị trang của bạn <%@ Page ..., sử dụng AutoEventWireup="true" và trong trang chủ của bạn, loại bỏ thuê bao PreRender sự kiện:

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

Hy vọng mọi thứ đều tốt đẹp, cảm ơn thời gian của bạn.

Chỉnh sửa: Vui lòng kiểm tra tệp web.config của bạn và đảm bảo rằng AutoEventWireup không được đặt thành False.

+0

Nhờ bạn Elias. Thật không may là chưa. Tôi đã kiểm tra lại mã của mình và mọi thứ giống như bạn đã đề xuất. –

+0

Điều này hoàn toàn vô nghĩa @Mudu, bạn nên thử trước và nên cho tôi biết, cảm ơn thời gian của bạn. –

+0

Chúng ta phải hiểu lầm lẫn nhau. Tôi đã thực sự thử những gì bạn đã viết, nhưng nó không hoạt động. Bên cạnh đó, tôi không bình chọn câu trả lời của bạn, trong trường hợp bạn cảm thấy bị xúc phạm. –