2009-03-20 5 views
5

masterpage의 OnInit 이벤트를 재정의하는 contentpage가 있습니다. 페이지에 사용자 지정 사용자 정의 컨트롤을 넣을 때까지 재정의가 올바르게 작동합니다.이 경우 OnInit 이벤트는 contentpage에 대해 실행되지 않습니다. 사용자 정의 컨트롤에 재정의가 사용되지 않습니다.asp.net에서 OnInit 이벤트 사용

가능한 원인/해결 방법은 무엇입니까? 이? (I 동적 컨트롤을 만들기 위해하는 OnInit 이벤트를 사용)


편집 : 지금은 콘텐츠 페이지에서이 시도

:

합니다 (OnPreInit 부분 실행하지만, Masters_Init은하지 않습니다 ...)

protected override void OnPreInit(EventArgs e) 
    { 
     base.Master.Init += new EventHandler(Masters_Init); 
    } 

    void Masters_Init(object sender, EventArgs e) 
    { 
    //code 
    } 

답변

17

당신은 기본 전화를하고 있습니까?

public override void OnInit(EventArgs e) 
{ 
    // code before base oninit 
    base.OnInit(e); 
    // code after base oninit 
} 

업데이트

public class Page1 : Page 
{ 
    public Page1 : base() { 
    PreInit += Page_PreInit; 
    } 
    void Page_PreInit(object sender, EventArgs e) 
    { 
    Master.Init += Master_Init; 
    } 
    void Master_Init(object sender, EventArgs e) 
    { 
    //code 
    } 
} 

또한베이스를 호출해야합니다 경우가 있지만,에없는 경우 나 이벤트를 무시하지 않는 것이 좋습니다 것 코멘트에 언급 한 바와 같이. 그래서 위의 편집에

protected override void OnPreInit(EventArgs e) 
{ 
    base.OnPreInit(e); 
    base.Master.Init += new EventHandler(Masters_Init); 
} 
+0

확인해야하지만 이벤트가 발사되지 않은 : 그래서 어쨌든 – akosch

+0

방금 ​​대신 대체하는 OnInit의 masterpage의 초기화 이벤트를 구독 할 수 있습니다 문제가되지 않는다? – bendewey

+0

작동하지 않는 경우 질문에 일부 코드를 게시하십시오. – bendewey