dataTableで遅延読み込み、ページング、グローバルフィルターを使用しています
レイジーロード関数では、2つのシナリオをサポートするために2つの関数を追加します。
1)ユーザーがページングしているとき
2)ユーザーがグローバルフィルターに値を追加して「Enter」を押したとき
基本的に私が知る必要があるのは、使用する関数を決定するために実行されたアクティビティです。
データ表:
<p:dataTable id="osTable"
var="object"
value="#{bean.lazyModel}"
selection="#{bean.selectedObjectSet}"
selectionMode="single"
rowKey="#{object.ID}"
paginator="true"
paginatorPosition="bottom"
paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
rowsPerPageTemplate="5,10,15"
rows="10"
widgetVar="objectTable">
<f:facet name="header">
<p:outputPanel style="float: right">
<h:outputText value="Search all fields:" />
<p:inputText id="globalFilter"
onkeypress="if (event.keyCode == 13) {objectSetTable.filter()}"
style="width:150px"/>
</p:outputPanel>
</f:facet>
ロード機能:
@Override
public List<CfgSe2deMapping> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, String> filters) {
List<Mapping> data = new ArrayList<Mapping>();
if (// if user press enter ) {
data.addAll(MappingHelper.getViaFilter(filters.get("globalFilter")));
} else {
data.addAll(MappingHelper.getViaOffSet(first + 1, first + pageSize));
}
Primefaces3.2を使用しています
ありがとう