在制表符javascript中进行排序后,如何在顶部获得特定行?

问题描述

使用制表符执行排序后,我试图将表格的行放在顶部。制表器中是否有内置功能可以实现此目的?

示例:

实际表格:

斯诺动物城

1条波士顿狗

2猫芝加哥

3只老鼠得克萨斯州

4 Eagle Colorado

返回表:

根据动物分类后,我需要在老鼠身上找到猫

斯诺动物城

3只老鼠得克萨斯州

2猫芝加哥

1条波士顿狗

4 Eagle Colorado

解决方法

您有两种选择可以实现此目的。您可以使用自定义排序功能来确保将它们移到表格顶部:

{title:"Name",field:"name",sorter:function(a,b,aRow,bRow,column,dir,sorterParams){
        //a,b - the two values being compared
        //aRow,bRow - the row components for the values being compared (useful if you need to access additional fields in the row data for the sort)
        //column - the column component for the column being sorted
        //dir - the direction of the sort ("asc" or "desc")
        //sorterParams - sorterParams object from column definition array

        // logic to normally sort rows an ensure row is on the top.

        return a - b;
    },}

有关如何构建自定义分类器的详细信息,请参见Sorting Documentation

,或者您可以结合使用 dataSorted 回调和 moveRow

var table = new Tabulator("#example-table",{
    dataSorted:function(sorters,rows){
        //sorters - array of the sorters currently applied
        //rows - array of row components in their new order

        var rowID = 2 the id for the row you want to move
        table.moveRow(2,table.getRows()[0],true); //move the row with an id of 2 and insert it at the top of the table
    },});

有关如何移动行的详细信息,请参见{可移动行文档](http://tabulator.info/docs/4.8/move#example-table-movable-rows