2017-05-05 3 views
1

私は行選択のためにフィルタとラジオボタンの両方を持つprimefaces datatableを使用しています。ラジオボタンを選択する上でデータテーブルのフィルタイベントの後に選択が機能しない

<p:dataTable id="dtId" var="bVar" widgetVar="dtWVar" 
value="#{bBean.myList}" filteredValue="#{bBean.bfilter}" 
rowKey="#{bVar.Id}" selection="#{bBean.selectedObj}"> 
<p:ajax event="filter" listener="#{bBean.onFilter()}" /> 

<p:ajax event="rowSelectRadio" 
    actionListener="#{bBean.onSelectRadio()}" /> 
<p:column selectionMode="single" headerText="RadioColHeader"> 

値はselectedObjに設定されつつあるが、我々はフィルタが使用されたDataTableの後にそれが動作を停止します。ラジオボタンが選択されましたが、選択したオブジェクトがselectedObjに設定されていません。

フィルタイベントが発生した後でも、選択オブジェクトに選択された行の値を取得する方法を提案してください。

+1

バージョン情報nd [mcve] – Kukeltje

+0

@Kukeltje私たちはプライムフェースを使用しています。5.1.9しばらくの間、minimul作業コードが出てくるでしょう。 – Teela

+0

そして、新しいバージョンを試して、issuelistを確認してください。 – Kukeltje

答えて

1

この問題は、Ajaxフィルタイベントでprocess="@this"を起動して、以下のようにリモートコマンドを介してデータテーブルを更新する上で修正されました:

Ajaxのイベントを - データテーブル

<p:ajax event="filter" process="@this" listener="#{bBean.onFilter()}" oncomplete="updateDataTable();" />

リモートコマンド内 - 外データテーブル

<p:remoteCommand name="updateDataTable" update="dtId" />

関連する問題