0

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

其中之一包含asp:RadioButtonListWithYes,No

其中Page_Load()一个通过单选按钮列表对用户可见。所以当他按下时Yess,另一个面板对他可见。

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

CssClass="span6 chzn-select">

所以当这个面板可见时DropDownList css消失!我知道更新面板回帖有问题,但我不知道如何解决。还DropDownList从名为 selected 的 JQuery 文件中获取样式,但我在任何页面上都没有任何脚本,我只是放了 css 类,它有它的样式。提前致谢。

4

3 回答 3

0

由 javascript 对元素所做的修改(如添加样式)不会通过回发持续存在,即使是部分回发也是如此。所有 javascript 初始化都需要在回发后重做。

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

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

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

摘自这个问题的片段。

于 2013-08-21T17:41:13.290 回答
0

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

<script>
function pageLoad() {
 $('#drpClients').addClass('span6 chzn-select');
}
</script>
于 2013-08-25T16:53:36.510 回答
0

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

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

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

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

您可以在页面加载和每次 UpdatePanel 刷新后运行它,方法是将其放入ASP.NET 按约定调用的 pageLoad() 函数中

function pageLoad() {
  $('.chzn-select').chosen();
}
于 2013-08-22T02:26:13.947 回答