我正在使用angularjs UI-Grid库进行网格设置并设置默认排序器启用。 例如enableSorting = true,但它不适用于列格式为数字和百分号的少数列(10,0%.90%等)。 任何人都可以帮忙吗?
答案 0 :(得分:0)
如果你有格式化"过滤器"在列上,它会影响您的排序方式,您想要添加到列定义中:
sortCellFiltered: true
(可选)默认为False。当真正的uiGrid将在排序数据之前应用cellFilter。请注意,使用此选项时,uiGrid将假定显示的值为字符串,并使用sortAlpha sortFn。可以从angularjs过滤器返回非字符串值,在这种情况下,您应该为返回类型的列定义一个sortingAlgorithm。您可以指定rowSorter服务中找到的其中一个sortingAlgorithms。
过滤的兴趣也可能是:
filterCellFiltered: true
。
(可选)默认为False。当真正的uiGrid将在应用" search"之前应用cellFilter。过滤器。
参考: http://ui-grid.info/docs/#/api/ui.grid.class:GridOptions.columnDef
答案 1 :(得分:0)
尝试sortDirectionCycle
删除第三种排序状态。
columnDefs: [
{ field: 'name', sortDirectionCycle: [uiGridConstants.ASC,
uiGridConstants.DESC] },
{ field: 'gender', sortDirectionCycle: [uiGridConstants.ASC,
uiGridConstants.DESC] },
{ field: 'company', enableSorting: false }
]
从文档中,单击列标题时,排序方向将循环升序,然后降序,然后返回未排序。
答案 2 :(得分:0)
我得到了解决方案,在我的场景中,我得到了字符串格式的对象值,如[{persent:" 10%"},{percent:" 0%"}, {百分比:" 90%"}];所以我提供了列定义类型,例如。输入:' numberStr'。它为我工作。