当前位置: 首页 > 面试题库 >

Primefaces blockUI在Ajax更新后停止工作

廉志强
2023-03-14
问题内容

我正在尝试创建一个数据表,该数据表在忙时显示一个blockUI,并且我大多数时候都成功了。现在,当我单击两个commandButtons中的任何一个,通过单击标题对数据表进行排序,或在数据表中翻页时,它都会变灰并显示“正在加载…”。您可以在下面查看其代码。

问题是,在我使用了一个commandButtons(在受阻止的元素上运行ajax更新)之后,后续操作不会触发blockUI(直到刷新页面)。例如:

  • 载入页面
  • 单击数据表头-出现blockUI,直到表完成排序
  • 单击数据表页面导航按钮之一-直到页面加载后,blockUI才会显示
  • 单击 命令按钮 之一 -出现blockUI,直到按钮的actionListener完成
  • 单击数据表标题-表进行排序,但未出现blockUI。
  • 单击数据表页面导航按钮之一-页面加载,但未出现blockUI
  • 单击命令按钮之一-actionListener运行并更新表,但未出现blockUI
  • 重新加载页面 -一切正常

将commandButtons的update =“”属性更改为ajax =“
false”会使排序/分页始终显示blockUI,而commandButtons则从不显示blockUI。

有任何想法吗?

<div class="buttonDiv">
    <p:commandButton ... update="resultsPanel" id="submitButton" ... />
    ...
    <p:commandButton ... update="resultsPanel" id="resetScenarioButton" ... />
</div>
<p:panel header="Results Grid" id="resultsPanel">
    ...
    <p:dataTable ... id="VAResults" ... >
        ...
    </p:dataTable>
    ....
</p:panel>
<p:blockUI block="resultsPanel" trigger="submitButton, resetScenarioButton, VAResults">
    Loading...
</p:blockUI>

问题答案:

trigger属性将jQuery侦听器绑定到指定的元素。但是,如果更新元素,绑定将丢失。我不知道它是否有效,但是您可以尝试将的<p:blockUI内部移动resultsPanel。我怀疑在更新面板时,blockUI也将更新,从而将侦听器重新绑定到数据表。

<p:panel header="Results Grid" id="resultsPanel">
    ...
    <p:dataTable ... id="VAResults" ... >
        ...
    </p:dataTable>
    ....
    <p:blockUI block="resultsPanel" trigger="submitButton, resetScenarioButton, VAResults">
    Loading...
</p:blockUI>
</p:panel>


 类似资料:
  • 我最近更新了android studio和它的插件,一切正常。但突然发生了这种事,我知道该怎么解决了。应用程序运行了,但出现了一些意想不到的行为。尝试同步gradle,卸载和重新安装更新,但似乎没有任何工作。

  • 突然,我的作曲家停止了创作。 无论何时运行,它都不会在此之后继续运行: 使用包信息加载composer存储库更新依赖项(包括需要开发) 我尝试了另一个Laravel项目,该项目的作曲家正在工作 我清除了缓存,并运行了这个命令 似乎什么也没发生。我将移动到另一个文件夹,从当前项目中删除并再次运行命令,但没有成功 这是我的文件:

  • 我在XAMPP中启动MYSQL时遇到了问题。Apache启动正常,但MYSQL不断报告意外关机。 我被引导删除,它在此之后工作,但它删除了我所有的数据库,并且MYSQL在我重新启动机器后再次停止工作。 [ERROR]INNODB:试图打开以前打开的表空间。以前的表空间MYSQL/INNODB_INDEX_STATS在FILEPATH:.\MYSQL\INNODB_INDEX_STATS.IBD中使

  • 问题内容: 我正在使用JQM 1.4.2创建一个小型应用程序,但遇到了一个问题,即我在不使用Ajax刷新页面的情况下更新表。这很好用,并且我的表(整个表)在更新后已更新,但不再起作用-按钮在那里,但是您为显示列所做的任何选择都不再起作用。 谁能想到发生这种情况的原因?代码如下: 主页 表格页面(为了便于阅读,我从这里删除了php的负载!): 单击编辑按钮以打开一个弹出窗口,当您关闭窗口时,将使用更

  • 我使用以下函数从密码保护的https url接收xml文件。 在我们的服务器将php更新到7.0版本之前,一切正常。22 在那之后,我再也不能接收xml文件了。我只是得到一个空洞的回答。有人知道为什么吗? 编辑:我不知道什么php版本安装之前,我们不能降级。

  • 问题内容: 我通过以下网站将一些主题用于Google DeveloperTools: 但是,更新32.0.1700.76 m后,所有主题都停止工作。 我需要怎么做才能让他们再次工作? 问题答案: 支持已从32版的Chrome中删除。 此答案提供了两种在开发人员工具中轻松激活样式表的方法。建议使用第二种方法,但仅适用于Chrome 33+,第一种方法也适用于Chrome 32。 这两种方法都是Chr