我有一个页面,我使用后面的代码来显示活动标签,因为标签位于我的母版页和子页面上的内容。
但我不知道为什么它不起作用我在很多应用程序中都使用它,因为它的所有工作都很好但不是特别适用。
System.Web.UI.HtmlControls.HtmlGenericControl currdiv = (System.Web.UI.HtmlControls.HtmlGenericControl)Master.FindControl("ClientTab");
currdiv.Attributes.Add("class", "ClientTabActive");
请查看我的代码并告诉我它为什么不起作用。
答案 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";