在asp和c#中使用子页面在母版页(代码隐藏)中添加类

时间:2013-06-25 07:55:16

标签: c# asp.net master-pages

我有一个页面,我使用后面的代码来显示活动标签,因为标签位于我的母版页和子页面上的内容。

但我不知道为什么它不起作用我在很多应用程序中都使用它,因为它的所有工作都很好但不是特别适用。

System.Web.UI.HtmlControls.HtmlGenericControl currdiv = (System.Web.UI.HtmlControls.HtmlGenericControl)Master.FindControl("ClientTab");
currdiv.Attributes.Add("class", "ClientTabActive");

请查看我的代码并告诉我它为什么不起作用。

1 个答案:

答案 0 :(得分:2)

FindControl只能找到服务器端控件,而不是纯HTML标签。在您的情况下,这意味着您应该将属性runat="server"添加到ClientTab div:

<li>
    <a href="Clients.aspx">
        <div id="ClientTab" class="MainNavigationContainerItem" runat="server"> Client</div>
    </a>
</li>

但是,您的代码似乎为此控件添加了另一个class标记,这可能不是您要查找的内容。很可能你想拥有的是

class="MainNavigationContainerItem ClientTabActive"

在这种情况下,代码隐藏的第二行应如下所示:

currdiv.Attributes["class"] = string.Format("{0} {1}", currdiv.Attributes["class"], "ClientTabActive";