2011-08-29 4 views
2

웹 사이트가 있습니다. 웹 사이트의 각 페이지에서 페이지 유형의 매개 변수를받는 함수를 호출하려고합니다. 각 페이지는 그 기능에 대한 참조를 전달합니다.ASP.Net - C# - 매개 변수로 페이지 전달하기

해당 기능은 숨기고 일부 논리를 기반으로 해당 페이지에서 일부 컨트롤을 표시합니다.

이제 페이지 매개 변수를 전달하는 방법을 잘 모르겠습니다. "this"을 전달하면 숨기거나 표시하고 싶은 컨트롤을 찾을 수 없습니다. 이것은 항상 무슨 잘못 여기에 널 (null)

어떤 생각을 반환 내 기능

public static void Implement(string pageName, Page objPage) 
    { 
     if (pageName == "MANAGEMENT") 
     { 
      HyperLink obj = (HyperLink) objPage.FindControl("hlSave"); 
      if (obj != null) 
      { 
       obj.Visible = false; 
      } 
     } 
    } 

하지만 objPage.FindControl("hlSave");입니까?

+0

당신이 마스터 페이지를 사용하고 있습니다 :

public static Control FindControlRecursive(Control Root, string Id) { if (Root.ID == Id) return Root; foreach (Control Ctl in Root.Controls) { Control FoundCtl = FindControlRecursive(Ctl, Id); if (FoundCtl != null) return FoundCtl; } return null; } 

는 당신이 그것을 좋아 사용할 수 있습니까? – NaveenBhat

+0

@Knvn, 아니요. 마스터 페이지를 사용하고 있지 않지만 – Riz

+0

마스터 페이지를 사용하고 있지 않습니다. 제공 한'FindControlRecursive' 메서드는 성능이 좋지 않습니다. 확인 했니? – NaveenBhat

답변

2

master page을 사용하는 경우 FindControlnull을 반환 할 수 있습니다.

HyperLink obj = (HyperLink)objPage.Master.FindControl("ContentPlaceHolderID").FindControl("hlSave"); 

또는 당신은 재귀 적 방법 아래 사용 hlSave을 찾을 수 있습니다 :이 경우 당신이 사용할 수있는

HyperLink obj = (HyperLink)FindControlRecursive(objPage, "hlSave"); 
관련 문제