2010-07-20 6 views
3

내가 작업하고있는 프로젝트에서 마스터 페이지 코드 숨김은 페이지의 TreeView에 표시되는 탐색 목록을 결정하는 복잡한 검사 및 확인 작업을 수행합니다. 이제 "frontpage.aspx"와 같은 다른 프론트 엔드 페이지에서이 목록에 액세스하는 방법이 필요합니다.ASP.Net - 일반 페이지에서 masterpage 개체에 액세스하는 방법?

이것은 두 가지 용도로 사용됩니다. 하나는 마스터 페이지가 사용자가 액세스 할 수없는 탐색 목록의 페이지를 숨기지 만 페이지 이름을 수동으로 URL에 입력하여 페이지를 계속 입력 할 수 있습니다. TreeView를 탐색 할 수있게 됨으로써, 페이지 이름이 현재 사용중인 TreeView 내에 있는지 단순히 확인함으로써 전체 인증을 단일 메소드로 분리 할 수 ​​있습니다.

두 가지를 사용하면 TreeView에 예를 들어 '제품 관리'가 포함되어 있는지 확인할 수 있으므로 데이터베이스를 확인하거나 현재 사용자가 가지고있는 특정 권한에 대한 세션을 저장하지 않고도 페이지의 내용을 쉽게 변경할 수 있습니다. 그런 다음이를 사용하여 "제품 관리"기능과 관련이있는 페이지의 섹션을 숨기거나 표시하십시오.

그렇다면이 작업을 수행하는 방법에 대한 팁이나 가능한 경우

+0

(TreeView) Master.FindControl ("TreeView1"); – garik

+0

당신이 원하는 것 같습니다. http://stackoverflow.com/questions/2686339/accessing-masterpage-variable-in-content-page –

+0

이 새로운 ID로 할 수 있으면 감사합니다 모두, 투표 것입니다. 어쨌든 예, 이것이 내가 찾고있는 것입니다. 이제는 그 트리 뷰에있는 모든 아이들을 얻는 법을 배우는 것뿐입니다. :) – Zan

답변

2

frontpage.aspx가 콘텐츠 페이지라고 가정하면이 페이지에서 확실히 마스터 페이지에 액세스 할 수 있습니다.

예를 들어이 코드는 마스터 페이지에있는 TextBox 및 Label 컨트롤을 찾습니다. 당신은 당신의 트 리뷰 찾기에 적응 할 수 있어야한다 : 자세한 정보를 위해

// Gets a reference to a TextBox control inside a ContentPlaceHolder 
ContentPlaceHolder mpContentPlaceHolder; 
TextBox mpTextBox; 
mpContentPlaceHolder = 
    (ContentPlaceHolder)Master.FindControl("ContentPlaceHolder1"); 
if(mpContentPlaceHolder != null) 
{ 
    mpTextBox = (TextBox) mpContentPlaceHolder.FindControl("TextBox1"); 
    if(mpTextBox != null) 
    { 
     mpTextBox.Text = "TextBox found!"; 
    } 
} 

// Gets a reference to a Label control that is not in a 
// ContentPlaceHolder control 
Label mpLabel = (Label) Master.FindControl("masterPageLabel"); 
if(mpLabel != null) 
{ 
    Label1.Text = "Master page label = " + mpLabel.Text; 
} 

을 - http://msdn.microsoft.com/en-us/library/c8y19k6h.aspx

당신은 Page.Master로 다스 려하고 주인이 속성을 주조 masterpage에서 공공 기능에 액세스 할 수 있습니다
0

당신은 MSDN에

TreeView tv = Master.MyTreeViewControl; 

또는

TreeView tv = (TreeView)Master.FindControl("MyTreeViewControl"); 

This page 프로그래밍 마스터 페이지 작업에 대한 자세한 정보가 있습니다 : 즉, 마스터 속성을 통해 액세스 할 수 있어야합니다.

0

-페이지;

((Styles_Master)Page.Master).IsMyProperty = "new value"; 
관련 문제