CSS在updatepanel中消失了

时间:2013-08-21 17:27:53

标签: jquery asp.net updatepanel

我有这个问题,我把整个页面放在更新面板中,我有几个ASP:Pannel Visible="false"属性。

其中一个包含asp:RadioButtonList Yes,No

Page_Load()其中一个用户通过单选按钮列表可见。 因此,当他按Yess时,另一个小组会对他可见。

问题是我有一个包含asp:DropDownList

的面板

CssClass="span6 chzn-select">

因此,当此面板显示时,DropDownList css消失! 我知道更新面板回帖有问题,但我不知道如何解决这个问题。 同样DropDownList从被调用的JQuery文件中获取样式,但我在任何页面都没有任何脚本,我只是把css类放在它的风格上。 提前谢谢。

3 个答案:

答案 0 :(得分:0)

javascript对元素(如添加样式)所做的修改不会通过回发,甚至是部分回发来保留。所有javascript初始化都需要在回发后重做。

这是一个javascript片段,它添加了一个回调以完成部分回发。您可以使用它来设置UI:

<script type="text/javascript">
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    prm.add_endRequest(EndRequest);

    function EndRequest(sender, args) {
    }
</script>

摘自this question

答案 1 :(得分:0)

像Chosen这样的插件不仅仅是CSS。他们使用JavaScript来查找具有该类的select元素,并使用可以很好地设计样式的不同标记来扩充/替换它们。

当UpdatePanel刷新时,并不是你的CSS丢失,而是选择的JavaScript没有运行来查找并重新增强那些带有Chosen类的普通<select>元素。

您应该可以使用以下代码重新初始化它们:

$('.chzn-select').chosen();

您可以在页面加载时运行该程序,并在每次UpdatePanel刷新后将其放入the pageLoad() function that ASP.NET calls by convention

function pageLoad() {
  $('.chzn-select').chosen();
}

答案 2 :(得分:0)

在同一页面中添加以下js函数(不在documentready中)

<script>
function pageLoad() {
 $('#drpClients').addClass('span6 chzn-select');
}
</script>
相关问题