我想创建显示blockUI每当忙一个DataTable,我大部分很成功。 现在灰色并显示“正在加载...”每当我通过点击标题,或者通过数据表页面单击任一两个命令的,排序的数据表。 你可以看到它的代码如下。
问题是,我已经使用CommandButton控件之一(运行阻塞元素的AJAX更新)后,后续操作不触发blockUI(直到我刷新页面)。 例如:
- 加载页面
- 单击数据表头 - blockUI出现,直到表整理完
- 单击数据表页面导航按钮之一 - blockUI出现,直到页面加载
- 点击CommandButton控件之一 - blockUI出现,直到按钮的ActionListener的已完成
- 单击数据表头 - 表格排序,但blockUI不会出现。
- 单击数据表页面导航按钮之一 - 页面加载,但blockUI不会出现
- 点击CommandButton控件之一 - ActionListener的运行和表更新,但blockUI不会出现
- 刷新页面 -一切正常再
改变CommandButton控件更新=‘’属性到AJAX =‘假’将导致排序/寻呼以始终显示blockUI,但CommandButton控件从不显示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>
我有同样的问题,一种呈三角情景:
<p:dataTable>
....
<p:ajax event="rowSelect" update="buttons" global="false" onstart="blockMessageButtons.show();" oncomplete="blockMessageButtons.hide();"/>
</p:dataTable>
<p:outputPanel layout="block" id="buttons">
<!-- content to be blocked -->
</p:outputPanel>
<p:blockUI block="buttons" widgetVar="blockMessageButtons"/>
问题是,面板上的按钮被均由AJAX更新,并且通过blockUI阻断。 我不得不把它一分为二:
<p:dataTable>
....
<p:ajax event="rowSelect" update="buttons-content" global="false" onstart="blockMessageButtons.show();" oncomplete="blockMessageButtons.hide();"/>
</p:dataTable>
<p:outputPanel layout="block" id="buttons-container">
<p:outputPanel layout="block" id="buttons-content">
<!-- content to be blocked -->
</p:outputPanel>
</p:outputPanel>
<p:blockUI block="buttons-container" widgetVar="blockMessageButtons"/>