制表符更新列数据

时间:2018-12-11 16:16:58

标签: javascript tabulator

我用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;

有什么可以做的吗?

2 个答案:

答案 0 :(得分:2)

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

var data = table.getData();

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

然后拿到自己的长度,只需data.length

答案 1 :(得分:1)

如果要计算表数据,请 getDataCount 对此进行精确计数,这将返回表中的行数:

var count = table.getDataCount();

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

Mutators

相反,您应该使用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}

使用这种方法,可以在将数据加载到表中时设置值,无需重绘任何内容,并且整个过程效率更高