忙しいときはいつでもblockUIを表示するデータテーブルを作成しようとしていますが、ほとんど成功しています。2つのコマンドボタンのいずれかをクリックするか、ヘッダーをクリックしてデータテーブルを並べ替えるか、データテーブルをページングするたびに、グレー表示されて「読み込み中...」と表示されます。以下にそのコードを示します。
問題は、コマンドボタンの1つ(ブロックされた要素に対してajax更新を実行する)を使用した後、後続のアクションがblockUIをトリガーしないことです(ページを更新するまで)。例えば:
- ページを読み込む
- データテーブルヘッダーをクリックします-テーブルの並べ替えが完了するまでblockUIが表示されます
- データテーブルページのナビゲーションボタンの1つをクリックします-ページが読み込まれるまでblockUIが表示されます
- commandButtonの1つをクリックします-ボタンのactionListenerが終了するまでblockUIが表示されます
- datatableヘッダーをクリックします-テーブルは並べ替えられますが、blockUIは表示されません。
- データテーブルのページナビゲーションボタンの1つをクリックします-ページは読み込まれますが、blockUIは表示されません
- commandButtonの1つをクリックします-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>