嗨,我想在后面的代码中动态添加 CSS 类。
它很容易添加,但我的结构几乎没有什么不同。
我有一个母版页,其中有一个像这样的 div:
<div class="contnav_bg" id="wrapper">
// some content
<div>
我想class="contnav_bg"
只应用于dashboard.aspx 页面。
现在它适用于所有页面。
我可以为它或其他任何东西创建功能吗?
谢谢
我会为此使用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/
如果你不想做这个服务器端,你可以通过一些 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>
如果您只希望某些页面具有该类,则不要将其保留在母版页中。如果你想在服务器上设置它,你必须能够访问那里的 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";