2012-04-28 13 views
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"/> 

答えて

1

+0

...

<p:blockUI block="feed" trigger="source"/> 

を試してみて、あなたがtrigger="myform:source"などへtrigger="source"を変更する必要がありますp:ajax

からfeedBlock.show()feedBlock.hide()を削除するには、ありがとう。私はオーバーレイのcssクラスをオーバーライドすることでこの問題を解決しました。だから、p:dialogでは、属性 "modal"をtrueに変更して、自分のカスタムオーバーレイを希望の位置、高さ、幅で表示しました。ブロックする領域が1つしかない場合にのみ機能しますが、これで十分です。 – user1237475

関連する問題