【发布时间】:2018-05-28 15:28:25
【问题描述】:
在正常情况下,没有大数据,甚至没有分页,如何使用多列对 ZK 列表框进行排序?
按第一列排序,按第二列排序,依此类推。
除非你再次点击它,否则你如何保持标题标签上的排序图标完好无损?
我有一个 ZK 版本 7.0.3 供参考。
【问题讨论】:
在正常情况下,没有大数据,甚至没有分页,如何使用多列对 ZK 列表框进行排序?
按第一列排序,按第二列排序,依此类推。
除非你再次点击它,否则你如何保持标题标签上的排序图标完好无损?
我有一个 ZK 版本 7.0.3 供参考。
【问题讨论】:
使用 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
}
顺便说一句,如果您没有大数据并且不使用分页,您真的需要对多个字段进行排序吗?
【讨论】:
它甚至可以更容易,因为自动排序也支持多个字段。
sort="auto(lastName, firstName)"
像这样,标题图标不需要额外的代码。
【讨论】: