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()。谢谢!工作得很好。