13

私の Web ページでは、モーダル 1 であるグローバル ajax ステータスを使用しています。つまり、ajax 呼び出しがあると、ユーザーは他のアクションの実行をブロックされ、待機を余儀なくされます。ここみたいに:

http://www.primefaces.org/showcase-labs/ui/ajaxStatusScript.jsf

ただし、このような動作は、ページ上のすべてのコンポーネントで望ましくありません。たとえば、オートコンプリートの場合、オートコンプリート コンポーネントのすぐ隣にノンブロッキング コンポーネントを配置する方が適切です。RichFaces では autocomplete コンポーネントによる status 属性がありました。

PrimeFaces (3.4 SNAPSHOT) では、ページ上の 2 つの異なる ajax ステータスを必要に応じて個別にトリガーする方法はありますか?

ありがとう、ルーカス

4

3 に答える 3

10

ajaxStatus をトリガーするかどうかにかかわらず、global 属性を使用できます。たとえば、false に設定すると、次のように ajaxStatus はトリガーされません。

<p:autoComplete id="acSimple" value="#{autoCompleteBean.txt1}" 
completeMethod="#{autoCompleteBean.complete}" global="false"/>

ajaxで更新している他のコンポーネントの場合。次のようなことができます。

<p:inputText value="#{autoCompleteBean.txt1}">
    <f:validateLength minimum="2" /> 
    <p:ajax global="false" update="email" event="keyup"/>
</p:inputText>

UPDATE : 2 つのステータスが必要な場合は、次のような独自のダイアログを作成してください。

<p:dialog widgetVar="status" modal="true" closable="false">
   Please Wait
</p:dialog>

<p:inputText value="#{autoCompleteBean.txt1}">
    <f:validateLength minimum="2" /> 
    <p:ajax global="false" onstart="status.show()" oncomplete="status.hide()" update="email" event="keyup"/>
</p:inputText>
于 2012-08-03T04:32:44.423 に答える
8

Primefaces 5.1 では、Ravi のソリューションで警告が表示され、機能しません。

  27-Mar-2015 14:35:41.877 WARNING [http-apr-8080-exec-2] org.primefaces.component.autocomplete.AutoCompleteRenderer.encodeScript The process/global/onstart/oncomplete attribute of AutoComplete was removed. Please use p:ajax with the query event now

Primefaces 5.1 の正しい解決策は、追加することです

 <p:ajax event="query" global="false"/>

autoComplete タグ内。

于 2015-03-27T13:46:33.340 に答える