sam*_*tts 0 vaadin vaadin-grid
我有以下网格结构,并想知道如何根据字符串的整数值对列进行排序。数据提供者无法灵活更改,因此我必须通过某种中间步骤进行排序:
Grid<String[]> grid = new Grid<>();
...
grid.addColumn(str -> str[columnIndex]).setHeader("sample").setKey("integercolumn").setSortable(true);
...
GridSortOrder<String> order = new GridSortOrder<>(grid.getColumnByKey("integercolumn"), SortDirection.DESCENDING);
grid.sort(Arrays.asList(order));
Run Code Online (Sandbox Code Playgroud)
这可以正确排序两位数字,但不能对一位或 3+ 数字进行排序。
您可以在用于对其值进行排序的列上定义自定义比较器。在您的情况下,比较器需要从数组中提取特定于列的值,然后将其转换为 int:
grid.addColumn(row -> row[columnIndex])
.setHeader("sample")
.setKey("integercolumn")
.setSortable(true)
.setComparator(row -> Integer.parseInt(row[columnIndex]));
Run Code Online (Sandbox Code Playgroud)
请参阅https://vaadin.com/docs/latest/components/grid/#specifying-the-sort-property。
归档时间: |
|
查看次数: |
209 次 |
最近记录: |