1
ajaxを使用して更新するときにdatatableをブロックする必要があります。私はblockUIコンポーネントを使用し、それはshow()メソッドとhide()メソッドです。しかし、それは一度しか動作しません!どこに問題がありますか?手伝ってくれてありがとう。ここ は、コードの一部です:Primefacesはコンポーネントを1回だけブロックします
<p:dialog resizable="false" showHeader="false" modal="false"
widgetVar="statusDialog" draggable="false" closable="false">
...
</p:dialog>
<p:panel>
<p:selectOneMenu id="source" value="#{mainBean.selectedSource}">
....
<p:ajax onstart="statusDialog.show(); feedBlock.show()"
oncomplete="statusDialog.hide(); feedBlock.hide()"
update="feed" listener="#{mainBean.filter(selectedSource, false)}"/>
</p:selectOneMenu>
</p:panel>
...
<p:dataTable id="feed" scrollable="true" scrollHeight="460"
value="#{mainBean.feed}" var="curr">
...
</p:dataTable>
<p:blockUI block="feed" widgetVar="feedBlock"/>
...
を試してみて、あなたが
trigger="myform:source"
などへtrigger="source"
を変更する必要がありますp:ajax
から
feedBlock.show()
とfeedBlock.hide()
を削除するには、ありがとう。私はオーバーレイのcssクラスをオーバーライドすることでこの問題を解決しました。だから、p:dialogでは、属性 "modal"をtrueに変更して、自分のカスタムオーバーレイを希望の位置、高さ、幅で表示しました。ブロックする領域が1つしかない場合にのみ機能しますが、これで十分です。 – user1237475