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

时间:2013-08-29 12:03:56

标签: c# asp.net css

您好我想在后面的代码中动态添加CSS类。

这很容易添加,但我的结构却差不多。

我有一个母版页,其中有一个这样的div:

<div class="contnav_bg" id="wrapper">

//  some content


<div>

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

现在它适用于所有页面。

我可以为它或其他任何东西创建功能。

由于

3 个答案:

答案 0 :(得分:1)

我会使用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/

答案 1 :(得分:1)

如果你不想做这个服务器端你可以通过一些jQuery来做到这一点,在我看来更清洁。将其添加到您的母版页:

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

它会查看当前网址,只有在用户位于dashboard.aspx页面时才会应用该网址。

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

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

答案 2 :(得分:-1)

如果您只想让某些页面具有该类,请不要将其保留在母版页中。如果要在服务器上进行设置,则必须能够在那里访问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";