Javascript 编程排序功能在制表器中不起作用
我对Javascript 编程排序功能在制表器中不起作用,javascript,tabulator,Javascript,Tabulator,我对制表器及其编程排序功能有问题。更具体地说,当由tabEndNewRow方法调用时,setSort()函数未按预期工作 以下是我的制表器表格设置代码: var table = new Tabulator(divId, { height: "100%", data: [], layout: "fitDataFill", tabEndNewRow: function (row) { table.setS
制表器及其编程排序功能有问题。更具体地说,当由tabEndNewRow
方法调用时,setSort()
函数未按预期工作
以下是我的制表器表格设置代码:
var table = new Tabulator(divId, {
height: "100%",
data: [],
layout: "fitDataFill",
tabEndNewRow: function (row) {
table.setSort([
{ column: "DateComp", dir: "asc" },
{ column: "TimeStart", dir: "asc" }
]);
return { DateComp: currentDate, TimeStart: "6:00 AM", TimeFinish: "6:00 AM" };
},
columns: [
{ title: "Date Worked", field: "DateComp", responsive: 0, hozAlign: "center", sorter: "date", editor: dateEditor },
{ title: "Start Time", field: "TimeStart", responsive: 0, hozAlign: "center", sorter: "time", editor: timeEditor },
{ title: "Finish Time", field: "TimeFinish", responsive: 0, hozAlign: "center", sorter: "time", editor: timeEditor }
]
});
每次使用tabEndNewRow
方法插入新行时,我都试图对我的tablator
表重新排序。非常感谢您的帮助。您遇到的问题是,您正在对表进行排序,然后返回新行,因此新行总是在排序后应用
您需要添加一个setTimeout
来延迟排序,直到添加行之后:
tabEndNewRow:函数(行){
//将排序延迟到添加新行之后
设置超时(()=>{
表1.setSort([
{列:“DateComp”,目录:“asc”},
{列:“TimeStart”,目录:“asc”}
]);
}, 100);
返回{DateComp:currentDate,TimeStart:“6:00am”,TimeFinish:“6:00am”};
},
看看这把小提琴:一旦你移动到下一行,它就会起作用。如果这不是您想要的,那么您可能需要在过程中的其他地方执行setSort()。谢谢!工作得很好。