こんにちは、
ページを更新せずに ajax を使用して複数のデータテーブルをレンダリングする検索ページがあります。各テーブルのリスナーとしてメソッドを呼び出すことは必須です。以下は、正常に動作する最初のデータテーブルのスニペットです。
#{evalController.prepareList}
2 番目のデータテーブルをレンダリングするには、メソッドを ajax のリスナーとして呼び出す必要があります。問題は、<f:ajax
「リスナー」属性が複数のメソッドを取らないことです。
したがって、残りの方法は、<f:ajax
何度か呼び出し、毎回異なるリスナーを使用することですが、これは機能しません。これを達成する方法はありますか?そうでない場合、必要なすべてのメソッドを呼び出し、それを 1 つのリスナーとして使用するマネージド Bean にメソッドを作成する必要がありますか?
よろしくお願いします。
<h:form id="searchform">
<h:panelGrid columns="3" >
<p:inputText value="#{ddnController.patientID}" id="pidinput" maxlength="7" size="7">
<f:ajax execute="@this" event="keyup" render="searchbutton ddntable" listener="#{ddnController.prepareList}"/>
</p:inputText>
<h:commandButton image="#{resource['images/search.png']}" id="searchbutton" value="#{bundle.Search}"
action="submit" actionListener="#{ddnController.prepareList}"
disabled="#{empty ddnController.patientID or ddnController.patientID.equals('0')}"/>
<p:panel><h:outputText value="Saisir 0 pour avoir tous les Patients" style="font-style: italic;"/></p:panel>
</h:panelGrid>
<p:dataTable id="ddntable" value="#{ddnController.items}" var="ddn" rendered="#{!empty ddnController.items}" paginator="true" >....