2013-04-16 1 views
0

ASP.Net 페이지에 약간 문제가 있습니다.Masterpage 컨트롤 목록에서 일부 컨트롤 만 반환합니다.

masterpage 코드 내에서 내 masterpage에서 모든 컨트롤을 가져 오려고합니다.

는이 코드

foreach (Control ctrl in ContentPlaceHolder1.Controls) 
{ 
    if (ctrl.GetType() == typeof(Label)) 
    { 
     //Do Stuff... 
    } 
} 

를 사용하여 하위 페이지와 이런 짓을하지만 난

foreach (Control ctrl in this.form1.Controls) 

와 다른 컨트롤을 얻을 때 그것은 completly 작동하지 않습니다.

나는 내 레이블 중 3 개를 얻지 만 나머지는 액세스 할 수 없습니다. 여기

내 ASP 코드

<div style="float: right;"> 
    <ul class="main-language language-level main-language-level-0" > 
     <li><a href=""> 
       <asp:Label runat="server" Text="Deutschland" ID="lbl_Language"/> 
      </a> 
      <ul class="language-level main-language-level-1"> 
       <li> 
        <a href="?Lng=EN"> 
         <asp:Label ID="lbl_English" runat="server" Text="United Kingdom" ForeColor="#0D679C" Font-Names="Century Gothic" /> 
        </a> 
        <span>English</span> 
       </li> 
       <li> 
        <a href="?Lng=DE"> 
         <asp:Label ID="lbl_German" runat="server" Text="Deutschland" ForeColor="#0D679C" Font-Names="Century Gothic" /> 
        </a> 
        <span>Deutsch</span> 
       </li> 
      </ul> 
      <img class="menu-image" src="Images/arrow_languageselection.png" /> 
     </li> 
    </ul> 
    <br /> 
    <a href="CustomerServiceLogin.aspx?Lgn=22TR" runat="server" id="LogLink"> 
     <asp:Label CssClass="ButtonOrange" runat="server" ID="lbl_Login" /> 
     <asp:Label CssClass="ButtonOrange" runat="server" ID="lbl_Logoff" Visible="false" /> 
    </a> 
</div> 

내가 찾을 수있는 유일한 레이블의 일부입니다 lbl_Language, lbl_Englishlbl_German

누군가에게 이것에 대한 해결책을 했습니까?

감사

CarnVanBeck

답변

1

당신이 form1.controls 반복 할 때없는 액세스가 다른 컨트롤 내부에 중첩 할 수있는 레이블이 그들은 반환되지 않습니다. 모든 컨트롤을 반환하려면 재귀 적 솔루션이 필요합니다.

foreach (Control ctrl in this.form1.Controls) 
{ 
    if (ctrl.Controls.Count > 0) 
    { 
     // do recursive call 
    } 
} 
관련 문제