12

テーブルを生成するために ui:repeat を使用しています。ui:repeat を使用すると、 を使用して行番号を簡単に取得できますvarStatus。バッキング Bean を呼び出してリスト ナビゲーションを処理するとき (たとえば、リスト内で項目を上下に移動するとき) は、varStatus の行 ID に依存しています。

ここで、行のマーク付け、行の上下移動などに必要なすべての機能を備えたカスタマイズ可能なテーブルを構築する複合コンポーネントを作成したいと考えています。異なる数の列を処理する; ある場所で見出しを指定し、別の場所で本文を指定する必要があります (カスタム コンポーネントを作成できる知識ポイントには達していません)。したがって、代わりに datatable を使用しました。これを使用すると、ヘッダーをボディ コンテンツと同じ場所でファセットとして指定することになります。

何らかの理由でvarStatusもうないことに気付くまで、それはうまくいきました。を必要とせずにリスト表示を処理するために多くの作業を行ってきましたが、datamodelそれを使い始めたくありません。を使用せずに、テーブルに表示されている現在の行番号を取得する方法はありますdatamodelか?

また、私はviewScopeを使用しています。正しく理解していれば、dataTableをBeanにバインドできないことを意味します。

4

1 に答える 1

32

Bean ではなく、ビュー自体にテーブルをバインドするだけです。

<h:dataTable binding="#{table}" ...>

その後、必要に応じて使用できます#{table.rowIndex}。例えば

<h:column>#{table.rowIndex + 1}</h:column>

コードは現状のままであり、EL 変数名tableは自由に選択できることに注意してください。

以下も参照してください。

于 2013-01-31T19:14:17.040 に答える