我正在使用vaadin-grid组件来查看我正在显示包含文本的网格数据的视图。在文本列中,排序似乎不区分大小写。排序只发生在以大写字母开头的文本中,而以小写字母开头的文本则被忽略
我检查了vaadin-grid-sorter的API documentation,它是vaadin-grid中排序的辅助元素,但无法获得所需的结果。
请建议其他方式。将不胜感激。
答案 0 :(得分:1)
在将数据集设置为网格items
之前,您始终可以手动对数据集进行排序。
有关如何实现不区分大小写的排序,请查看: How to perform case insensitive sorting in Javascript?
编辑:
如果您正在使用(远程API)dataProvider(请参阅https://vaadin.com/elements/vaadin-grid/html-api/elements/Vaadin.GridElement:使用函数数据提供程序进行延迟加载),则在请求完成后,将使用callback
函数作为其第二个参数调用您的提供程序函数。只需在将结果传递给回调之前对结果进行排序。
答案 1 :(得分:0)
container.setItemSorter(new CaseInsensitiveItemSorter());
那应该是您所需要的-至少对于Vaadin 7或8,不确定10左右。
答案 2 :(得分:0)
使用Vaadin 14(.1.25),您可以对不区分大小写的内容进行排序,例如与此:
Column<MyObject> column = ...;
column.setComparator(new Comparator<MyObject>() {
@Override
public int compare(MyObject arg0, MyObject arg1) {
return arg0.getText().compareToIgnoreCase(arg1.getText());
}
});