0

私はprimefacesp:dataGridコンポーネントを持っており、最後のページを表示するデフォルトページとして設定したい(最初のページではありません)。これはどのように行うことができますか?

のカスタム ボタンと次のp:dataGridカスタム ボタンをクリックしているときに、コンポーネントを動的に生成しようとしています。また、[前へ] をクリックすると、最初のページではなく、データ グリッドの最後のページに移動したいと考えています。

どうもありがとうございました!

4

1 に答える 1

3

バッキング Bean でコンポーネントを取得し、最初の行が表示されるように手動で設定する必要があります (これを実際に計算する必要があります)。最初の行に従って、Primefaces は表示されるページを計算します。

まずpreRenderView、ページにイベント リスナーを追加します。

<f:metadata>
  <f:event listener="#{myBean.initDatagrid}" type="preRenderView"/>
</f:metadata>

バッキング Bean でロジックを実行します。

public void initDatagrid() {
  FacesContext fc = FacesContext.getCurrentInstance();
  if (!fc.isPostback()) {
    DataGrid dg = (DataGrid) fc.getViewRoot().findComponent("dataGrid_id");
    int firstRow = initFirstRow(); // set firstRow to first row on last page that should be displayed
    dg.setFirst(firstRow);
  }
}
于 2013-03-15T15:25:14.050 に答える