从Tabulator JSON下载中排除已删除的列

时间:2019-01-25 21:22:16

标签: tabulator

我正在尝试通过downloadReady方法捕获Tabulator表的JSON。但是,JSON包含使用table.deleteColumn()删除的列。如何从导出的JSON中排除这些列?

// pseudocode:
// delete bind
$("#deleteColumn").click(function(){
   table.deleteColumn(field);
 });

// download bind
$("#download-json").click(function(){
   table.download("json", "data.json");
});

var table = new Tabulator("#table, {
   downloadReady:function(fileContents, blob){
      $.post( "saveJson.php", { 
         json: fileContents
      });
   return false;
}
});

我希望JSON代表实际的表,但它包含已删除的列。

1 个答案:

答案 0 :(得分:1)

那是因为您滥用了下载功能。

下载功能旨在创建文件供用户下载。传递给该函数的数据是要在自定义下载器中使用的数据,并且包含所有行数据。

它不用于发送Ajax请求。

正确的解决方案是实现您自己的函数,该函数调用 getData 函数,该函数将从表中返回数据,然后将其传递给ajax请求处理功能。

您将需要遍历并从不需要的拖曳数据中筛选出所有属性。制表器将为您提供每一行中的所有数据

function sendData(){
    var data = table.getData(true);
    var columns = table.getColumns();

    var filteredData = [];

    data.forEach(function(row){
        var outputRow = {};

        columns.forEach(function(col){
           var field = col.getField();

           if(col.getVisibility()){
               outputRow[field] = row[field];
           }
        });

        filteredData.push(outputRow);
    });

    //send your data via ajax
    $.post( "saveJson.php", { 
         json: filteredData
    });
}