0

ご挨拶、

コンテキストはmyFaces2.0.2であり、Tomahawk20-1.1.10も追加される可能性があります

バッキングBean内のの特定の属性を表示するdataTable(現在は。ですが、 Tomahawkを使用してh:dataTableいる可能性もあります)を作成しました。リストのaのみを返し、列ヘッダーをクリックして並べ替えることでページングを実行します。t:dataTableList<MyObject>subList

次に行う必要があるのは、テーブルに常に固定数の行が表示されるようにすることです。たとえば、ページサイズが5で、リストに12個のアイテムがある場合、最後の2つのアイテムと3つの空白行を表示するために3ページが必要です。

nullとnull値subListのインスタンスの両方でを「埋める」ことを試みましたが、これはテーブルの最後のページに到達したときに発生しました(ページングメソッドがまだ余分な値を追加しているときでも、ビューは試みていました)。次に、同じ方法でメインリストをパディングしようとしましたが、ソート関数を使用しました(後から考えると簡単です)。さらに、xhtmlビューでこれを実行したい場合、これらはすべてバッカーのオーバーヘッドを追加します。myObjectConcurrentModificationExceptiongetDisplayListNullPointer

(h:/t:)dataTable属性はありrowsますが、これは、必要に応じて、表示する行の最小数ではなく、最大数を指定します。

アイデアをお願いします?

4

2 に答える 2

0

ここでの解決策は、null ではないが属性が null であるオブジェクトを使用して、subList ではなく MAIN List をパディングし、コンパレータに null チェックを追加することでした。

if (obj1.getSomeValue() == null) {
    return +1;
}
else if (obj2.getSomeValue() == null) {
    return -1;
}
else {
    // primary sorting code
}

これにより、null アイテムが常に最後に来ることが保証されます。完璧に動作します。

BalusC は私に正しい方向へのプッシュを与えてくれたので、私は彼の答えを受け入れています。

于 2010-11-29T19:07:02.373 に答える
0

サブリストをパディングしないでください。リストをパディングします。Bean で取得した直後が望ましいです。

于 2010-11-25T02:20:00.833 に答える