Datagrid 排序编号 - 最后要为空

Datagrid sort number - want null last

是否有任何方法可以在数据网格列上设置排序,该列可以是数字但可以为 null,这样如果用户对列表进行排序,它总是最后显示 null IE asc 将是 1,2,3,null desc 将是 3,2,1,null

很有用,因为很多行都将具有空值,如果单击排序,则用户将专注于查看按上述方式排序的信息。

列可以具有应用程序提供的自定义排序功能。

我将列出一个概述,然后将 stackblitz link 留给一个工作的应用程序,以便您可以参考工作代码。

首先,为要使用的应用定义 CustomComparator

import {ClrDatagridComparatorInterface} from "@clr/angular";

class CustomComparator implements ClrDatagridComparatorInterface<any> {
    compare(a: any, b: any) {
      if (a.key && b.key) {
        return a.key - b.key;
      } else {
        return null;
      }
    }
}

接下来,在具有数据网格

的组件中将比较器声明为public实体
public customComparator = new CustomComparator();

最后,更新模板以声明在需要它的列上使用自定义比较器:

<clr-dg-column [clrDgField]="'key'"
  [clrDgSortBy]="customComparator">
    Key
</clr-dg-column>

这是一个 link stackblitz,其中植入了一个自定义比较器,该比较器总是 return 空项目最后。 https://stackblitz.com/edit/so-58020609-custom-sorting