2010-05-22 2 views
0

내가 가지고있는 문제는 내가 여러 중첩 된 마스터 페이지 가지고있다 :마스터 페이지, 양식 페이지, 양식 runat = server> 마스터 페이지의 모든 onclick 메소드?

  • 수준을 1 : 글로벌 (머리글, 바닥 글, 로그인, 네비게이션 등)
  • 레벨 2 : 특정 (검색 페이지, 계정 페이지 등)
  • 레벨 3 : 현재 페이지 자체

, 이후 하나 개의 형태로 할 수있는 하 ve runat=server, 나는 글로벌 페이지에 폼을 넣는다. (로그인, 피드백 등을 처리 할 수있다.).

이제 레벨 1 마스터 페이지에서도 검색과 같은 예를 들어 레벨 3 (위 참조) 방법을 넣어야하지만,이 페이지는 무거운 (개발 용) 페이지로 연결됩니다. 단일 페이지에서만 사용되는 코드 (예 : 전자 메일 양식 변경)와 같은 모든 장소의 코드가 포함되어 있습니다.

레벨 1 (글로벌 마스터 페이지)에서 레벨 3 (단일 페이지 자체)까지의 이벤트 (예 : ChangeEMail)에서 이러한 메소드를 위임 할 수있는 방법이 있습니다.

더 명확하게 : 나는 글로벌 마스터 페이지 코드 뒤에 ChangeEMail 메서드를 가질 필요는 없지만 실제로 그것을 사용하는 유일한 페이지로 '이동'하고 싶습니다. 현재 글로벌 마스터에 있어야하는 이유는 글로벌 마스터가 form runat=server이고 aspx 페이지 당 하나만있을 수 있기 때문입니다.

이렇게하면 코드를 구조화하는 것이 더 쉬워집니다.

thnx (내가 제대로 설명 희망)하는 데는 보통 대답은

을 검색했지만이 사건을 처리에 어떤 일반적인 정보를 찾을 수 없습니다 : 마스터 페이지에있는 모든 방법을 가지고,하지만 난하지 않습니다 그것처럼. 특정 페이지로 이동하는 방법은 정말 멋져요. 또한 thnx

편집 반면에 같은 일의 일부 ... - 어떻게 마스터 페이지에서 콘텐츠 페이지에 예를 들어 textbox1.text에 액세스 할 수? 이것에 대한 모범 사례?

답변

2

검색 단추와 텍스트 상자를 .aspx 자체 (레벨 3)에 놓으면 이벤트 핸들러가 페이지 (또는 코드 숨김)에도 표시됩니다. 양식 태그가 글로벌 masterpage (레벨 1) 두 번째 질문에 대해서는

에 있는지 중요하지 않습니다 당신은 # 1 체크 아웃

var tb = this.FindControl("textbox1") as TextBox; 
+0

를 사용할 수 있습니다. # 2의 경우 강력한 타이핑을 사용할 수 없습니까? 이것은 누군가가 이름을 바꿀 때 null 포인터로 만들어진 것 같습니다. # 1 : – b0x0rz

+0

# 1 : 나는이 일을하고있다 : SignIn CS1061 : 'ASP.manage_signin_default_aspx'에 'AuthorizeUser'에 대한 정의가없고 'AuthorizeUser'에 대한 첫 번째 인수를 허용하는 확장 메서드가 없습니다. 'ASP'를 입력하십시오.manage_signin_default_aspx '를 찾을 수 있습니다 (사용 지시문이나 어셈블리 참조가 누락 되었습니까?) – b0x0rz

+0

이것이'레벨 3 '페이지에서 작동하지 않는 이유입니다. 확실하지 않은 무엇이 그때 ... – b0x0rz

관련 문제