2013-04-16 35 views
0

我的ASP.Net頁面有點問題。主頁控件列表只返回一些控件

我試圖從我的母版頁內的主頁頁面代碼中獲取所有控件。

我這樣做是與孩子頁面使用此代碼

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

但是當我試圖讓其他控件與

foreach (Control ctrl in this.form1.Controls) 

它不完全地工作。

我得到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_Languagelbl_Englishlbl_German

有人偷了一個解決方案?

真誠

CarnVanBeck

回答

1

如果您不能訪問嵌套另一個控制內部的標籤,然後他們將不會被當你遍歷form1.controls返回。您將需要遞歸解決方案來返回所有控件。

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