我用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;
有什么可以做的吗?
答案 0 :(得分:2)
您可以使用getData函数检索存储在表中的数据。
var data = table.getData();
这将返回一个数组,其中包含表中每一行的数据对象。
然后拿到自己的长度,只需data.length
答案 1 :(得分: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}
使用这种方法,可以在将数据加载到表中时设置值,无需重绘任何内容,并且整个过程效率更高