gpt4 book ai didi

javascript - Handsontable 的 columnSorting 也在对固定行进行排序

转载 作者:行者123 更新时间:2023-11-29 21:51:53 24 4
gpt4 key购买 nike

我正在使用 Handsontable 填充我的数据库数据。

我已经使用了 3 个固定行,但是当我点击列标题进行排序时,它会将完整数据与固定行一起排序。

我希望它应该通过保留固定行来排序。

这里是 jsFiddle

这是我的代码:

hot = new Handsontable(container, {
data: data,
minSpareRows: 1,
colHeaders: true,
fixedRowsTop: 3,
columnSorting: true,
contextMenu: true
});

最佳答案

我确实通过更改 handsontable.full.js 的“this.sort”函数解决了这个问题

我有一个固定行,所以在开始排序之前,我拼接了第一行并将其保存在变量中。

我让原始排序运行并对我的数据进行排序,然后在从排序函数返回之前我确实将保存的第一行添加到我的数据数组

我的解决方案:

// handsontable.full.js -- built in sort function

this.sort = function () {
var instance = this;

if (typeof instance.sortOrder == 'undefined') {
return;
}

instance.sortingEnabled = false; //this is required by translateRow plugin hook
instance.sortIndex.length = 0;

var colOffset = this.colOffset();
for (var i = 0, ilen = this.countRows() - instance.getSettings()['minSpareRows']; i < ilen; i++) {
this.sortIndex.push([i, instance.getDataAtCell(i, this.sortColumn + colOffset)]);
}

// Custom Sorting - Saving First Row
var firstRow = this.sortIndex[0];

// Remove first Row from data
this.sortIndex.shift();
/////// Original Sort Begin/////////
var colMeta = instance.getCellMeta(0, instance.sortColumn);
var sortFunction;
switch (colMeta.type) {
case 'date':
sortFunction = dateSort;
break;
default:
sortFunction = defaultSort;
}

this.sortIndex.sort(sortFunction(instance.sortOrder));
////// Original Sort END /////////


// Custom Sorting - Adding the fixed row to the TOP
this.sortIndex.unshift(firstRow);


//Append spareRows
for(var i = this.sortIndex.length; i < instance.countRows(); i++){
this.sortIndex.push([i, instance.getDataAtCell(i, this.sortColumn + colOffset)]);
}

instance.sortingEnabled = true; };

关于javascript - Handsontable 的 columnSorting 也在对固定行进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28718223/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com