Sorting
排序使用户能够按顺序排列列中的数据,从而使信息更易于阅读和分析。当用户需要快速找到特定列中的最高或最低值时,这一点非常有用。
有关如何使用 Repository 模式来管理和查询集合的信息,请参阅 Repository 文章。
显示代码
- Java
默认情况下,列不可排序,除非明确启用。要允许对特定列进行排序,请使用 setSortable(true) 方法:
table.getColumn("Age").setSortable(true);
多重排序
25.00 默认禁用多列排序在 webforj 25.00 之前,表格默认支持多列排序。从版本 25.00 开始,此行为发生了变化——开发人员现在需要明确启用多列排序。
如果需要多重排序,必须在表上应用 setMultiSorting(true)。这允许用户按顺序对多个列进行排序:
table.setMultiSorting(true);
启用多重排序后,点击多个列标题将按顺序进行排序。排序优先级在表 UI 中以视觉方式显示。
显示代码
- Java
您还可以为服务器端排序以编程方式定义排序优先级。按优先级使用 setSortOrder() 在要排序的列上:
// 服务器端排序顺序
nameColumn.setSortOrder(1);
ageColumn.setSortOrder(2);
除非使用 setSortOrder(),否则表格默认按列声明的顺序进行排序。
显示代码
- Java
排序方向
列可以排序的方向有三种可用设置:
SortDirection.ASC: 按升序对列进行排序。SortDirection.DESC: 按降序对列进行排序。SortDirection.NONE: 对列不应用排序。
当列启用排序时,您会看到一组垂直箭头指示符出现在设定列的顶部。这些箭头允许用户在不同的排序方向之间切换。
当选择升序时,将显示 ^,而降序则显示 v。
客户端与服务器端排序
数据排序大致可以分为两种主要方法:客户端排序和服务器排序。
客户端排序
客户端排序涉及在客户端应用程序的用户界面中直接排列和 显示数据。这是用户在单击列标题时与之交互的排序,会影响屏幕上数据的视觉表示。
开发人员对客户端排序没有直接控制权,而是由 Java 中提供的列类型决定。目前支持以下类型:
- TEXT
- NUMBER
- BOOLEAN
- DATE
- DATETIME
- TIME
当客户端只提供部分数据时,客户端排序不起作用。
服务器排序
与客户端排序相反,服务器排序是在服务器上排列和组织数据,然后再将其传输到客户端。这种方法在处理可能不切实际完全传输到客户端的大型数据集时特别有益。
开发人员对服务器排序的逻辑具有更大的控制权。这允许实现复杂的排序算法和优化,使其适合于处理大量数据的场景。这样可以确保客户端接收到预排序的数据,最小化大量客户端处理的需要。