チェックボックスベースの選択にprimefacesデータテーブルを使用しており、与えられた例を実装しようとしています。彼らはモデル、たとえば、SelectableDataModel インターフェイスを実装できるuserModelを使用しました。モデルを使用したくないので、この目的のためにrowKeyを使用しました。
例えば
datatable.xhtml
<p:dataTable id="table" var="item" value="#{userBean.allItems}"
paginatorPosition="bottom" paginator="true" rows="3"
selection="#{userBean.selectedItems}" rowKey="#{item[0]}">
<p:column selectionMode="multiple"/>
<p:columns value="#{userBean.itemColHeader}" columnIndexVar="colIndex" var="colName" >
<f:facet name="header" >
<h:outputText value="#{colName}"/>
</f:facet>
<h:outputText value="#{item[colIndex]}"/>
</p:columns>
</p:dataTable>
ここ、
allItems = ArrayList<ArrayList<String>>
selectedItems = ArrayList<ArrayList<String>>
selectedItems = ArrayList<String>
userBean.java
@ManagedBean(name="userBean")
@ViewScoped
public class userBean implements SelectableDataModel {
private ArrayList<ArrayList<String>> selectedItems;
public ArrayList<ArrayList<String>> getSelectedItems() {
return selectedItems;
}
public void setSelectedItems(ArrayList<ArrayList<String>> selectedUsers) {
this.selectedItems = selectedItems;
}
}
私の問題:
1) When I select mulitple rows, selectedUsers remains empty.
2) After selecting next page, previous selection get lost.
@BelusCブログを調べたところ、バインドは可能な解決策ですが、彼の指示では問題を解決できないことがわかりました。コンバーターは必要ですか..? 私のアプローチに何か問題がありますか?ありがとう
更新:1
Arraylist( allItems ) の Arraylist を使用する理由は、datatable をジェネリックにするためだけです。データテーブルを描画する際に列数を気にする必要はありません。そのため、オブジェクトに依存してはならない選択されたアイテムを取得したいのです (例: car[ ] selectedcars)