我正在尝试创建一个在忙碌时显示 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>