制表符更新列数据

tabulator update column data

我已经 table 设置了带有未知数据(从文件中提取)的 Tabulator,所以我无法为它设置列定义,除了适用于任何类型数据的一般设置.

现在我需要为列 code 下的每一行添加特定代码,这些代码包含在现有的 table.

我想在第一行添加类似 SX0001 的代码,然后每行添加 1,这样第二行看起来像 SX0002

我检查过这个 link http://tabulator.info/docs/4.1/update#alter-replace 我看到一些函数适用于行但不适用于列。

我正在努力实现的解决方案:- link 包含在 updateData 函数下,我需要 index 和默认值 (Id)

考虑到我不确定它可能具有或包含在 table 中的日期类型,我使用此代码添加了一个新列

table.addColumn({title:"id", field: "id" , formatter:"rownum",width:40, align:"center"} , true)

现在我不知道如何获取列的长度以循环遍历每一列和 运行 像这样的函数

var no = 1000;
var str = "SX";
var x = str + no ;

table.updateData([{id:1, code:x}]);
var no = no +1;

有没有办法做到这一点?

您可以使用 getData 函数检索存储在 table 中的数据。

var data = table.getData();

这将 return 一个数组,其中包含 table 中每一行的数据对象。

然后为了得到你的长度就做data.length

如果要计算 table 数据,getDataCount 正是为此,其中 returns table:

中的行数
var count = table.getDataCount();

但实际上您当前的方法会导致 table 在您更新行数据时被重绘很多次。

突变体

您应该考虑使用 Mutator,这些允许您在数据进入 table 时更改数据,因此在这种情况下您可以这样做:

//global variable to keep track of row id
var rowCount = 0;

//custom mutator
var idMutator = function(value, data, type, params, component){
  //increment rowCount and assign as column value
  return rowCount++;
}

//in your column definition set this mutator
{title:"ID", field:"id", mutatorData:idMutator}

通过使用这种方法,值是在数据加载到 table 时设置的,不需要重新绘制,整个过程效率更高