2

大家好,我想从后面的代码中动态申请位于母版页css中的<li>标签是我的设计

<div id="primary_nav">
    <ul>
       <li class="left active" id="nav_discussion" runat="server">
           <a title="Go to Forums" href="">
               Forums
           </a>
       </li>
       <li class="left" id="nav_members" runat="server">
           <a title="Go to Member List" href="Members.aspx">
               Members
           </a>
       </li>
    </ul>
 </div>

在此处输入图像描述 在我的内容页面中,我访问<li>如下

Control li = Page.Master.FindControl("nav_members");

但我无法在css这里申请所需的人可以帮助我

4

3 回答 3

6

在这种情况下,您的Controlis 类型HtmlGenericControl不包含CssClass.

您需要将控件转换为 HtmlGenericControl 类型。例如

System.Web.UI.HtmlControls.HtmlGenericControl li = (System.Web.UI.HtmlControls.HtmlGenericControl) this.Page.Master.FindControl("nav_members");

然后,这将为您提供两种选择来将样式应用于元素。您可以使用该Style属性或该Attributes属性。

Style属性将允许您向元素添加内联样式,例如:

li.Style.Add("Color", "Black");

这将渲染元素:

style="color:red;"

您的另一个选择是使用Attributes允许您添加class.

li.Attributes.Add("class", "nameofyourclass");

阅读有关HtmlGenericControl的更多信息

于 2013-01-30T09:12:57.613 回答
2

如果您找到该控件,则使用以下命令添加 css

 Control li = Page.Master.FindControl("nav_members");
 li .Style.Add("float", "left");

如果要覆盖某些属性,则可以使用

  li .Style.Add("width", "100px !important");

etc.Here is a good link
在 CSS 中使用“!important”有什么影响?

这是一个类似的问题
C# - How to change HTML elements attributes

编辑 1。

您需要先将其转换为 html 通用控件

 HtmlGenericControl  li = (HtmlGenericControl)(Page.Master.FindControl("nav_members"));
 li .Style.Add("width", "100px !important");
于 2013-01-30T09:05:02.847 回答
0

尝试 :

nav_members.Attributes.Add("class", value);
于 2013-01-30T09:07:42.267 回答