2008-10-15 8 views
2

마스터 페이지에서 발생하는 사용자 지정 이벤트를 어떻게 catch합니까? 내 마스터 페이지에서ASP.NET 마스터 페이지가있는 이벤트 및 대리자

나는 사용자 지정 이벤트 및 대리자를 가지고 :

public event SignOutHandler SignOut; 
public delegate void SignOutHandler(); 

마스터 페이지의 링크 버튼을 클릭 할 때이 발생합니다. 내가 그 이벤트에 가입 할 페이지에 사용자 정의 컨트롤에서

if (SignOut != null) 
{ 
    SignOut(); 
} 

,하지만 난이 액세스하는데있어 방법을 모르겠어요.

MyInstantiatedMasterPage.SignOut += new MyMasterPage.SignOutHandler(MyEvent); 

하지만 마스터 페이지를 다루는이 할 수없는 것을 의미한다 : 일반적으로 내가 좋아하는 뭔가를 할 것입니다.

답변

4

그것은 당신이 사용해야합니다 무엇 전역 객체로 인스턴스화 것 :

((MyMasterPage)Master).SignOut += new MyMasterPage.SignOutHandler(MyEvent); 
+0

내가 MyMasterPage.SignOutHandler (myEvent가)에 액세스 할 수없는 것; 내 사용자 정의 컨트롤 내에서. 그러나 웹 양식에서 액세스 할 수 있습니다. –

+0

그것은 이상한 것입니다. 동일한 네임 스페이스에있는 경우 어디서든 마스터 페이지의 (인스턴스가 아닌) 대리자에 액세스 할 수 있어야합니다. 마스터 페이지와 동일한 네임 스페이스에서 액세스하려는 컨트롤입니까? – TheSmurf

+0

내 마스터, 페이지 또는 컨트롤에 네임 스페이스가 없지만 모두 자체 폴더에 있습니다. 폴더 이름에 네임 스페이스가 함축되어 있습니까? 어쨌든 내 페이지가 마스터에 액세스 할 수 있지만 내 컨트롤에는 액세스 할 수없는 이유를 설명하지는 않습니다. –

관련 문제