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_Language,lbl_Englishlbl_German

有人对此有解决方案吗?

真挚地

卡恩范贝克

4

1 回答 1

1

如果您无法访问的标签嵌套在另一个控件中,那么当您遍历 form1.controls 时,它们将不会被返回。您将需要一个递归解决方案来返回所有控件。

foreach (Control ctrl in this.form1.Controls)
{
    if (ctrl.Controls.Count > 0)
    {
        // do recursive call
    }
}
于 2013-04-16T11:02:13.363 回答