您好我已尝试过这两个代码在slickgrid中插入新行。
码-1:
data1.push({id: "12345", name: "secKey", field: "secKey", complete:true});
//grid1.setData(data1);
//grid1.render();
它在光滑的网格单元中以未定义的形式插入..
代码-2:
try{
var rowData = grid1.getData();
//alert(rowData+"rowdata");
newId = dataView1.getLength();
//alert(newId);
newRow.id = newId + 1;
//alert(newRow.id);
var newRow = {title: "new Title"};
//alert(newRow);
dataView1.insertItem(newRow.id, newRow);
alert("end");
}catch(e){
alert("error:"+e.description);
}
代码-2捕获并给出错误..我知道我必须做代码更改。!
答案 0 :(得分:10)
如果您使用的是数据视图,则可以按照以下步骤进行操作
function AddNewRow() { dataView.addItem({id: "12345", name: "secKey", field: "secKey", complete:true}); dataView.refresh(); }
如果您不使用数据视图,则可以按照以下方式执行,
function AddNewRow() { grid.getData().splice(grid.getDataLength(), 1, {}); grid.invalidateRow(grid.getSelectedRows()); grid.updateRowCount(); grid.render(); }
答案 1 :(得分:1)
如果您使用的是Slick.DataView,则应使用.addItem
方法
dataView.beginUpdate();
dataView.addItem(item);
dataView.endUpdate();
答案 2 :(得分:0)
这就是我使用Jatin的答案(没有数据视图):
slickgrid.onAddNewRow.subscribe(function (e, args) {
var newRow = args.item;
newRow.prop1= true;
newRow.prop2= false;
newRow.prop3= 0;
newRow.prop4= "";
args.grid.getData().splice(args.grid.getDataLength(), 1, newRow);
args.grid.invalidateRow(args.grid.getDataLength() - 1);
args.grid.updateRowCount();
args.grid.render();
});