我正在尝试通过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代表实际的表,但它包含已删除的列。
答案 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
});
}