ZK列表框排序多列

时间:2018-05-26 11:10:01

标签: listbox zk

在正常情况下,即使没有大量数据或分页,如何使用多个列对ZK列表框进行排序?

按第一列排序,按第二列排序,依此类推。

除非你再次点击它,否则如何保持标题标题上的排序图标完好无损?

我有一个ZK版本7.0.3供参考。

2 个答案:

答案 0 :(得分:2)

使用MVVM并在视图模型中进行实际排序。在视图模型中有一个自定义比较器sorts on multiple fields。您的可排序列表框列表标题看起来像这样:

<listheader label="Name" sort="auto(each.name)" onSort="@command('nameSort', asc=event.isAscending())" />

并在您的视图模型中:

@Command
@NotifyChange("names")
public void nameSort(@BindingParam("asc") final boolean isAscending) {
    // modify your custom comparator
}

顺便说一句,如果你没有大数据并且没有使用分页,你真的需要对多个字段进行排序吗?

答案 1 :(得分:1)

它甚至可以更容易,因为自动排序也支持多个字段。

sort="auto(lastName, firstName)" 

像这样,标题图标不需要额外的代码。