制表器 (4.1) 替换新的列值/格式化程序

dia*_*ond 5 javascript image-uploading tabulator

我在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);
Run Code Online (Sandbox Code Playgroud)

我添加了更多行来定义每个表单,其 ID 与此类似,f.id = "f_" + cell.getRow().getData().id ;因此每个表单都是唯一的,uploadID功能如下所示

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

return "<i class='fa fa-print'>upload ID</i>";
Run Code Online (Sandbox Code Playgroud)

这是我从官方资源http://tabulator.info/docs/4.1/format#icon 得到的问题是每当我选择文件cell.getRow().getData().idCopy的值fileName正是我想要的但在表格的单元格上它仍然说upload ID而不是 的值fileName的值

因此用户将不知道他刚刚选择了文件并且系统已准备好上传它。

有没有办法用 值替换刷新这些单元格?upload IDfileName

dia*_*ond 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*/;
Run Code Online (Sandbox Code Playgroud)

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

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

    var row = cell.getRow();
    row.reformat();
Run Code Online (Sandbox Code Playgroud)