1

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

它很容易添加,但我的结构几乎没有什么不同。

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

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

//  some content


<div>

我想class="contnav_bg"只应用于dashboard.aspx 页面。

现在它适用于所有页面。

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

谢谢

4

3 回答 3

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/

于 2013-08-29T12:12:40.313 回答
1

如果你不想做这个服务器端,你可以通过一些 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>
于 2013-08-29T12:13:09.033 回答
0

如果您只希望某些页面具有该类,则不要将其保留在母版页中。如果你想在服务器上设置它,你必须能够访问那里的 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";
于 2013-08-29T12:17:31.520 回答