首页 文章

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

提问于
浏览
2

我在 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 而不是 fileName 的值

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

是否有一种方法 replace upload IDfileName 值或 refresh 这些单元格?

1 回答

  • 0

    我通过应用行重组来修复它

    首先我在 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();
    

相关问题