私もこのに走った、と私は役立つかもしれないコーディングパターンを開発しました。実際にPrimeFacesのものではありません(JSF 2でブックマーク可能なリンクを使用する技術の詳細)。
マークアップでは、次のようにページのすべてのパラメータを含めます:
<f:metadata>
<f:viewParam name="orderID" value="#{bean.orderID}" />
<f:viewParam name="sortMode" value="#{bean.sortMode}" />
<f:viewParam name="firstRecord" value="#{bean.firstRecord}" />
<f:viewParam name="pageSize" value="#{bean.pageSize}" />
</f:metadata>
は、これらの値の各々は、それらが設定されていない場合、それらは適切なデフォルト値を生成する、ようにバッキングBeanにバックアップされています。たとえば、次のようにこのビューへ
public int getPageSize() {
if (pageSize < MIN_PAGE_SIZE) pageSize = DEF_PAGE_SIZE;
if (pageSize > MAX_PAGE_SIZE) pageSize = DEF_PAGE_SIZE;
return pageSize;
}
リンクを生成することができる。
今、あなたはそれらの値を変更するにはユーザーコントロールを実装し、テーブルに彼らが変更されるたびに再生成します。あなたはまだそのためにAJAXを使用する必要があります - 例えば:setterメソッドで
<p:spinner value=#{bean.pageSize} >
<p:ajax update="tableID" />
</p:spinner>
、あなたがテーブルの再生成をトリガする必要がありますが、それはそれの要点です。私はこれが役立つことを願っています
UPDATE:など
改ページを処理するために、あなたは、単に、最初のページのリンクを追加する前のページを必要とする、次のページ、リンクは次のようになります。
<h:link value="First Page" outcome="thisPage">
<f:param name="orderID" value="#{bean.orderID}" />
<f:param name="sortMode" value="#{bean.sortMode}" />
<f:param name="firstRecord" value="0" />
<f:param name="pageSize" value="#{bean.pageSize}" />
</h:link>
<h:link value="Next Page" outcome="thisPage">
<f:param name="orderID" value="#{bean.orderID}" />
<f:param name="sortMode" value="#{bean.sortMode}" />
<f:param name="firstRecord" value="#{bean.nextRecord}" />
<f:param name="pageSize" value="#{bean.pageSize}" />
</h:link>
などをあなたバッキングBeanにプロパティを実装して、パラメータが何であるべきかを計算する必要があります。
THXは、はいビューのparamsとしてページや並べ替えのパラメータを持つことは、私は、AJAXの上に好むものです。しかし、私の質問は、プライムフェースでのレイズ荷重データを使って、このアプローチでページネーションとソートを処理する方法です。 – fischermatte
@fischermatte更新を参照してください。 – AlanObject
まだ - ajaxリクエストを実行すべきではなく、これらのパラメータを使用して新しいページリクエストを呼び出すべきであるという、プライムフェイスのdatagetableのページネイタとソートボタンをどのように伝えますか?私がそこに見る唯一の解決策は、そのような並べ替えとページ設定を使用して独自のdatatableコンポーネントを作成することです。しかし、私がこの問題を抱えている最初の人であれば、本当に不思議です。私の視点から見ると、これはコンポーネントフレームワークによって処理されるべき機能です。 – fischermatte