【问题标题】:Add New Row to SlickGrid向 SlickGrid 添加新行
【发布时间】:2013-08-07 15:58:07
【问题描述】:

您好,我已尝试使用这两个代码在 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 捕获并给出错误..让我知道我必须更改代码。!

【问题讨论】:

  • 错误是什么?您的列规范是什么样的?
  • @Ates Goral:error is undefined is null or not an object;我的列规范如下所示 var columns = [ { id: "secKey", name: "secKey", field: "secKey ", 可排序: true,formatter:sectionLinkFormatter} ];

标签: slickgrid


【解决方案1】:

如果你使用的是dataview,你可以这样做,

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

如果你不使用dataview,也可以按如下方式进行,

函数 AddNewRow() { grid.getData().splice(grid.getDataLength(), 1, {}); grid.invalidateRow(grid.getSelectedRows()); grid.updateRowCount(); 网格.render(); }

【讨论】:

    【解决方案2】:

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

    dataView.beginUpdate();
    dataView.addItem(item);
    dataView.endUpdate();
    

    【讨论】:

    • @jatin patil 我试过你的代码,未定义被插入。并在你的代码2中指定要插入的数据..? kavun 你的代码也插入了 undefined
    • 我通过这个代码开始工作了...让我知道使用此代码的任何建议...data1[data1.length] = { id:data1.length+Math.random(), secKey :$('#sectionButtonName').val() }; grid1.setData(data1); grid1.render();
    • 在上面的代码中,过滤器不起作用。我现在应该做什么?
    【解决方案3】:

    这就是我使用 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();
        });
    

    【讨论】:

      猜你喜欢
      • 2012-05-02
      • 1970-01-01
      • 2011-11-25
      • 2011-06-09
      • 2012-03-07
      • 1970-01-01
      • 2012-10-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多