【发布时间】:2012-09-05 15:20:31
【问题描述】:
我正在尝试创建一个在忙碌时显示 blockUI 的数据表,而且我基本上成功了。现在,每当我单击两个命令按钮中的任何一个、通过单击标题对数据表进行排序或翻阅数据表时,它都会变灰并显示“正在加载...”。你可以在下面看到它的代码。
问题是,在我使用了其中一个命令按钮(在被阻止的元素上运行 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>
【问题讨论】:
-
在我的项目中,我的情况与您的情况类似,但我会在单击按钮后更新整个表单...我不知道您是否想要这样做
标签: ajax jsf-2 primefaces blockui