使用c#在代码背后动态添加CSS类

本文关键字:添加 CSS 动态 背后 代码 使用 | 更新日期: 2023-09-27 18:29:34

嗨,我想在代码背后动态添加CSS类。

这很容易添加,但我的结构略有不同。

我有一个主页面,它有一个像这样的div:

<div class="contnav_bg" id="wrapper">
//  some content

<div>

我希望class="contnav_bg"仅应用于dashboard.aspx页面。

现在它适用于所有页面。

我可以为它创建函数吗。

感谢

使用c#在代码背后动态添加CSS类

如果你不想在服务器端做这件事,你可以通过一些jQuery来做,在我看来,它要干净得多。将此添加到您的主页:

<script type="text/javascript">
 $(document).ready(function() {
    if(window.location.pathname.indexOf('dashboard.aspx') > 0)
    {
        $('#wrapper').addClass('contnav_bg');
    }
 });
</script>

它将查看当前url,并且只有当用户在dashboard.aspx页面上时才应用该类。

或者,将代码直接放在dashboard.aspx模板中,,而不是放在主页面中:

<script type="text/javascript">
 $(document).ready(function() {
     $('#wrapper').addClass('contnav_bg');
 });
</script>

我会使用jQuery。

在Dashboard.aspx页面的标记中,添加以下内容:

<script type="text/javascript">
    $(document).ready(function(){
        $('div#wrapper').addClass('contnav_bg');
    });
</script>

如果你是jQuery的新手,这里有一个"入门"教程:http://learn.jquery.com/javascript-101/getting-started/

如果只希望某些页面具有该类,则不要将其保留在母版页中。如果你想在服务器上设置它,你必须能够访问那里的DIV。所以你应该让它成为一个服务器div:

<div id="wrapper" runat="server"></div>

请注意,当您这样做时,ID将被更改,因此任何使用它的JavaScript都可能会中断

然后,当您执行服务器代码时,您可以获得div并添加属性,但只能在Dashboard.aspx代码绑定中。您可以在Page_Load:上执行此操作

var myDiv = this.FindControl("wrapper") as HtmlGenericControl;
myDiv.Attributes["class"] = "contnav_bg";