상세 컨텐츠

본문 제목

ASP.NET 중첩 마스터 페이지의 FindControl

Web Development/ASP.NET

by thankee 2009. 4. 3. 17:45

본문

중첩 마스터 페이지의 경우, 마스터페이지의 컨트롤을 찾기위해서는 다음과 같이 최상단의 Master Page로 이동 후, 단계적으로 찾아 내려오는 과정이 필요합니다.

예를들어 마스터페이지가 2개 중첩된 경우, Master.Master을 이용하여 최상단 MasterPage로 이동하는 과정이 필요하며, 최상단에서 ContentPlaceHolder을 찾아서 단계적으로 하위로 이동하여 자신이 원하는 컨트롤을 찾아야합니다.

MasterPage : firstContentPlaceHolder
MasterPage : secontPlaceHolder
<asp:Label id="targetLabel" />
ASPX Page : ContentPage
 

위의 페이지 구조를 가지는 경우, ContentPage에서  targetLabel을 컨트롤 해야하는 경우, 먼저 다음과 같은 코드로 Label을 찾아야합니다.

- ASPX Content Page에서 targetLabel을 컨트를 하는 방법
Label
targetLabel = this.Page.Master.Master
    .FindControl("firstContentPlaceHolder")
    .FindControl("secondContentPlaceHolder")
    .FindControl("targetLabel")as Label;

targetLabel.Text = "Hello ASP.NET";

관련글 더보기