2

嗨,我已经尝试了这两个代码来在 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);
            }

code-2 捕获并给出错误..让我知道我必须更改代码。!

4

3 回答 3

10

如果您使用的是数据视图,您可以按以下方式进行操作,

函数 AddNewRow() {
    dataView.addItem({id: "12345", name: "secKey", field: "secKey", complete:true});
    数据视图.refresh();
}

或者,如果您不使用数据视图,您可以按以下方式进行操作,

    函数 AddNewRow() {
        grid.getData().splice(grid.getDataLength(), 1, {});
        grid.invalidateRow(grid.getSelectedRows());
        grid.updateRowCount();
        网格.render();
    }
于 2013-08-08T02:06:04.213 回答
1

如果您使用的是 Slick.DataView,则应使用该.addItem方法

dataView.beginUpdate();
dataView.addItem(item);
dataView.endUpdate();
于 2013-08-07T20:46:21.277 回答
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();
    });
于 2017-02-25T17:16:46.410 回答