【问题标题】:CSS disappearing in updatepanelCSS在更新面板中消失
【发布时间】:2013-08-21 17:27:53
【问题描述】:

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

其中一个包含asp:RadioButtonListYes,No

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

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

CssClass="span6 chzn-select">

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

【问题讨论】:

  • 试试yourUpdatePanel.Update();

标签: jquery asp.net updatepanel


【解决方案1】:

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

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

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

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

摘自this question的片段。

【讨论】:

  • 这里应该放什么?函数 EndRequest(sender, args) { }
  • 不工作 :( 我试过这个
【解决方案2】:

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

并不是说您的 CSS 在 UpdatePanel 刷新时丢失了,而是 Chosen JavaScript 没有运行来查找和重新增强那些带有 Chosen 类的普通 &lt;select&gt; 元素。

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

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

您可以在页面加载时以及在每次 UpdatePanel 刷新后运行它,方法是将其放入 the pageLoad() function that ASP.NET calls by convention

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-31
      • 1970-01-01
      • 2011-07-08
      • 2018-03-29
      • 2020-08-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多