不区分大小写的列排序

发布时间:2020-07-07 13:05

Non case-sensitive sorting in dojo dgrid

由@https://stackoverflow.com/users/237950/ken-franqueiro发布的答案

grid.on('dgrid-sort', function (event) {
    // Cancel the event to prevent dgrid's default behavior which simply
    // passes the sort criterion through to the store and updates the UI
    event.preventDefault();
    // sort is an array as expected by the store API, but dgrid's UI only sorts one field at a time
    var sort = event.sort[0];
    grid.set('sort', function (a, b) {
        var aValue = a[sort.attribute].toLowerCase();
        var bValue = b[sort.attribute].toLowerCase();
        if (aValue === bValue) {
            return 0;
        }
        var result = aValue > bValue ? 1 : -1;
        return result * (sort.descending ? -1 : 1);
    });
    // Since we're canceling the event, we need to update the UI ourselves;
    // the `true` tells it to also update dgrid's internal representation
    // of the sort setting, so that toggling between asc/desc will still work
    grid.updateSortArrow(event.sort, true);
});

a和b变量的值是什么? 就我而言,我不想触摸库文件,我的事件参数具有网格的完整详细信息,因此我想对事件参数中存在的数据进行排序并更新网格,我该如何修改上述代码? / p>

回答1