0

我用 Tabulator 设置了一个带有未知数据(从文件中提取)的表,所以除了适用于任何类型数据的常规设置外,我无法为其设置列定义。

现在我需要为code现有表中包含的列下的每一行添加某些代码。

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

我检查了这个链接http://tabulator.info/docs/4.1/update#alter-replace我看到了一些适用于行但不适用于列的功能。

我正在尝试实现的解决方案:-该链接包含在updateData函数下,我需要具有默认值(Id)的索引

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

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;

有什么办法吗?

4

2 回答 2

2

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

var data = table.getData();

这将返回一个数组,其中包含表中每一行的数据对象。

然后得到你的长度只是做data.length

于 2018-12-11T16:21:20.087 回答
1

如果要准确计算表数据getDataCount,它会返回表中的行数:

var count = table.getDataCount();

但实际上,当您更新行数据时,您当前的方法将导致表被重绘多次。

突变体

相反,您应该考虑使用Mutator,这些允许您在数据进入表时更改数据,因此在这种情况下,您可以执行以下操作:

//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}

通过使用这种方法,在将数据加载到表中时设置值,无需重绘,整个过程效率更高

于 2018-12-12T20:58:45.127 回答