制表符(4.1)替换新的列值/格式器

时间:2018-12-09 16:51:48

标签: javascript image-uploading tabulator

我已在制表器中使用此列定义

添加了新列
table.addColumn({title:"idCopy", field: "idCopy" ,sortable:false, formatter:uploadID,width:100, align:"center",cellClick:function(e, cell){
  function selected(){
    var fileName = formInput.value;
    cell.getRow().getData().idCopy = fileName;

  }
var f = document.createElement("form");
var formInput = document.createElement('input');
formInput.onclick = "selected(cell,f,formInput)" ;
var s = document.createElement("input");
s.setAttribute('type',"submit");
f.appendChild(formInput);
f.appendChild(s);
f.onClick = formInput.click();
}}, false);

我添加了更多行来定义ID与此f.id = "f_" + cell.getRow().getData().id ;类似的每种表单,因此每种表单都是唯一的,uploadID函数看起来像这样

  var uploadID = function(cell, formatterParams, onRendered){ 

return "<i class='fa fa-print'>upload ID</i>";

这是我从官方资源http://tabulator.info/docs/4.1/format#icon中获得的信息 问题是,每当我选择文件cell.getRow().getData().idCopy的值为fileName时,该值正是我想要的,但是在表格的单元格上它仍然显示upload ID而不是{{1}的值}的值

因此用户不会知道自己刚刚选择了文件,系统就可以上传了。

是否可以用fileName替换 upload ID刷新这些单元格?

2 个答案:

答案 0 :(得分:1)

我通过应用行重新格式化

修复了该问题

首先,我在var uploadID = function(cell, formatterParams, onRendered){}

中添加了一个条件

例如:

var uploadID = function(cell, formatterParams, onRendered){ //plain text value
var x = cell.getValue();
if ( x == null ){ // do something}
else{ // do something }
return /*something*/;

然后在cellClick:function(e, cell){}

我在代码末尾添加了以下内容

    var row = cell.getRow();
    row.reformat();

答案 1 :(得分:0)

如果要更改行中的任何数据,则需要在该行的行组件上调用 update 函数,并传入更新的数据参数:< / p>

row.update({id:"f_" +  cell.getRow().getData().id});

这将正确更新值