如果值的格式为(60%,30%,20%等),则UI-Grid排序不适用于列

时间:2017-12-12 12:07:26

标签: angularjs angular-ui-grid

我正在使用angularjs UI-Grid库进行网格设置并设置默认排序器启用。 例如enableSorting = true,但它不适用于列格式为数字和百分号的少数列(10,0%.90%等)。 任何人都可以帮忙吗?

3 个答案:

答案 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'。它为我工作。