vmware-clarity - Datagrid 排序号 - 最后希望为空
问题描述
有没有什么方法可以在数据网格列上设置排序,该列是数字但可以为空,这样如果用户对列表进行排序,它总是最后显示空,即 asc 将是 1,2,3,null desc 将是 3,2 ,1,空
很有用,因为许多行将具有空值,如果单击排序,则用户将专注于查看您按上述排序的信息。
解决方案
列可以具有应用程序提供的自定义排序功能。
我将列出一个概述,然后留下一个指向工作应用程序的 stackblitz 链接,以便您可以参考工作代码。
首先,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 customComparator = new CustomComparator();
最后,更新模板以声明在需要它的列上使用自定义比较器:
<clr-dg-column [clrDgField]="'key'"
[clrDgSortBy]="customComparator">
Key
</clr-dg-column>
这是一个堆栈闪电战的链接,其中植入了一个自定义比较器,该比较器总是最后返回空项目。https://stackblitz.com/edit/so-58020609-custom-sorting
推荐阅读
- c++ - EvtExportLog API 将远程计算机的事件日志保存在远程 PC 本身中。如何将其保存到主机 PC?
- node.js - 我们如何使 NodeJS 成为多线程的?
- javascript - 石头剪刀布 Discord.js 命令的问题
- ios - iOs 13 无法检索区域信息
- spartacus-storefront - 使用 Spartacus,添加到购物车服务抛出错误:“必需的字符串参数 'product' 不存在”
- java - android.database.sqlite.SQLiteException:靠近“SET”
- php - 如何重构多维数组
- java - java中的文件扫描和文件移动
- angularjs - 指令加载时无法调用函数
- ios - 如何将用户帐户链接到应用商店帐户 IAP?