制表符 (4.1) 替换新的列值/格式化程序
Tabulator (4.1) replacing new Column value/ formatter
我在 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
这正是我想要的但是在 table 的单元格上它仍然说 upload ID
而不是fileName
的价值
因此用户不会知道他刚刚选择了文件并且系统已准备好上传它。
有没有办法用fileName
值替换upload ID
或刷新那些单元格?
我已经通过应用行重新格式化修复了它
首先我在 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();
如果您要更改行中的任何数据,则需要对该行的行组件调用 update 函数,传入更新后的数据参数:
row.update({id:"f_" + cell.getRow().getData().id});
这将正确更新值
我在 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
这正是我想要的但是在 table 的单元格上它仍然说 upload ID
而不是fileName
的价值
因此用户不会知道他刚刚选择了文件并且系统已准备好上传它。
有没有办法用fileName
值替换upload ID
或刷新那些单元格?
我已经通过应用行重新格式化修复了它
首先我在 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();
如果您要更改行中的任何数据,则需要对该行的行组件调用 update 函数,传入更新后的数据参数:
row.update({id:"f_" + cell.getRow().getData().id});
这将正确更新值