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 都有一个名字,每个 User 都有一个名字和姓氏。然而,并不是每个 Foo 都有一个领导者,所以在上表中,领导者有几个空/空白值。当通过单击列标题按领导者对表格进行排序时,所有没有领导者的 Foo 都会丢失。当再次按名称排序时,它们返回,领导者为空白。

有没有什么办法解决这一问题?空值总是排在最后的偏好是最好的,但我会选择它们不会消失的任何东西。

4

1 回答 1

1

正确排序是SortableDataProvider. 如果它使项目消失,你应该修改它的逻辑。

于 2012-08-23T01:33:53.833 回答