当UpdatePanel在计时器上更新时,css样式丢失

时间:2012-09-27 11:55:21

标签: asp.net css updatepanel

我在更新面板刷新时更新面板中的元素丢失时遇到问题。我知道这不是一个新问题,已经阅读了以下主题

Someguys Blog on it

And another thread on it

可能的解决方法包括:用div围绕更新面板,用div包围更新面板。

这在我的情况下不起作用,因为我在更新面板中有几个元素,但我想只将样式应用于其中的两个元素,此方法使更新面板中的每个元素都反映样式。

任何建议都将不胜感激

-J

1 个答案:

答案 0 :(得分:2)

您可以在周围的div上使用类来控制div内元素的样式。将类放在内部的一些元素上以识别它们,并更改周围div上的类以触发更改。

示例:

<div id="container" class="hide">
  This is the content that can change
  <div class="someelement">asf</div>
  <div>qwer</div>
  <div class="otherelement">uyhgf</div>
</div>

您可以更改外部div上的类:

document.getElementById('container').className = 'show';

现在,您可以设置CSS规则,以根据外部类显示内部元素的更改:

.hide .someelement { display: none; }
.show .someelement { display: block; }
.hide .otherelement { color: yellow; }
.show .otherelement { color: black; }

当计时器替换内容时,内部元素仍然看起来相同,因为控制外观的类在外部div上。