前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Salesforce Add Sorting in Lightning Data Table in Lightning Web Component

Salesforce Add Sorting in Lightning Data Table in Lightning Web Component

原创
作者头像
repick
发布于 2022-05-03 05:00:16
发布于 2022-05-03 05:00:16
71500
代码可运行
举报
文章被收录于专栏:SalesforceSalesforce
运行总次数:0
代码可运行

点击列名进行进行排序功能

1.JS中为每一列设置【sortable:true】

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const columns = [
    { label: 'Name', fieldName: 'name', type: 'text', sortable: true },
    { label: 'Email', fieldName: 'email', type: 'text', sortable: true },
    { label: 'Phone', fieldName: 'phone', type: 'text', sortable: true },
    { label: 'OwnerName', fieldName: 'ownerName', type: 'text', sortable: true },
    { label: 'Birthdate', fieldName: 'birthdate', type: 'date', sortable: true },
];

2.Html

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<lightning-datatable
        show-row-number-column
        max-row-selection="1"
        onrowselection={handelSelection}
        key-field="id"
        data={records}
        columns={columns}
        default-sort-direction={defaultSortDirection}
        sorted-direction={sortDirection}
        sorted-by={sortedBy}
        onsort={onHandleSort}>
</lightning-datatable>

3.Js排序事件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@track defaultSortDirection = 'asc';
    @track sortDirection = 'asc';
    @track sortedBy;
    onHandleSort(event) {
        const { fieldName: sortedBy, sortDirection } = event.detail;
        const cloneData = [...this.records];
        cloneData.sort(this.sortBy(sortedBy, sortDirection === 'asc' ? 1 : -1));
        this.records = cloneData;
        this.sortDirection = sortDirection;
        this.sortedBy = sortedBy;
    }

    sortBy(field, reverse, primer) {
        const key = primer
            ? function (x) {
                return primer(x[field]);
            }
            : function (x) {
                return x[field];
            };

        return function (a, b) {
            a = key(a);
            b = key(b);
            return reverse * ((a > b) - (b > a));
        };
    }

4.效果展示

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验