使用vaadin-grid进行不区分大小写的排序

时间:2018-01-10 10:42:23

标签: polymer vaadin-grid

我正在使用vaadin-grid组件来查看我正在显示包含文本的网格数据的视图。在文本列中,排序似乎不区分大小写。排序只发生在以大写字母开头的文本中,而以小写字母开头的文本则被忽略 我检查了vaadin-grid-sorter的API documentation,它是vaadin-grid中排序的辅助元素,但无法获得所需的结果。
    请建议其他方式。将不胜感激。

3 个答案:

答案 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());
    }
});