0

これが私のテーブルの疑似コードです:

List<IColumn<Foo>> columns = new ArrayList<IColumn<Foo>>();
columns.add(new PropertyColumn<Foo>(Model.of("Name"), "name", "name"));
columns.add(new PropertyColumn<Foo>(Model.of("Leader"), "leader.lastName",
   leader.fullName"));

fooTable = new AjaxFallbackDefaultDataTable<Foo>("fooTable", columns,
   provider, 10);

クラスFooには、他のフィールドが含まれています。

private String name;
private User leader;

また、クラスUserには、文字列userName、password、firstName、lastName、email、および以下が含まれます。

public String getFullName() {
    // Use blank strings in place of "null" literals
    String f = firstName != null ? firstName: "";
    String l = lastName != null ? lastName: "";
    return (l + ", " + f);
}

すべてのFooには名前があり、すべてのユーザーには名前と名前があります。ただし、すべてのFooにリーダーがあるわけではないため、上の表では、リーダーにnull/空白の値がいくつかあります。列ヘッダーをクリックしてテーブルをリーダーで並べ替えると、リーダーのないすべてのFooが表示されなくなります。名前で再度並べ替えると、リーダーは空白で返されます。

これを修正する方法はありますか?nullが常に最後にソートされる設定が最適ですが、nullが消えない場合は何でも使用します。

4

1 に答える 1

1

正しい並べ替えは、の責任ですSortableDataProvider。アイテムが消える場合は、ロジックを修正する必要があります。

于 2012-08-23T01:33:53.833 に答える