【问题标题】:SlickGrid cannot delete added rows, but only existing ones. What am I doing wrong?SlickGrid 不能删除添加的行,只能删除现有的行。我究竟做错了什么?
【发布时间】:2012-02-03 09:59:40
【问题描述】:

这是我添加行的代码:

grid.onAddNewRow.subscribe(function (e, args) {
    var item = args.item;
    id=id+1;
    item["id"] = "id_"+id;
    grid.invalidateRow(data.length);
    data.push(item);
    dataView.beginUpdate();
    dataView.endUpdate();
    grid.updateRowCount();
    grid.render();
});

这是我删除一行的代码:

if ((event.which == 46)) {
    $(".slick-cell.selected").parent().each(function() {
        var item = dataView.getItem($(this).attr("row"));
        var rowid = item.id;
        dataView.deleteItem(rowid);
        grid.invalidate();
        grid.render();
    });
}

这适用于已经存在的行,但不适用于添加的行。由于某些原因,item 变量对于新行未定义。我做错了什么?

已编辑 谢谢,丁!所以我有一个解决方案:

      grid.onAddNewRow.subscribe(function (e, args) {
        var item = args.item;
        id=id+1;
        item["id"] = "id_"+id;
        data.push(item);
        dataView.beginUpdate();
        dataView.setItems(data);
        dataView.endUpdate();
      });

.

       if ((event.which == 46)){
            var rows = grid.getSelectedRows();
            for (var i = 0, l = rows.length; i < l; i++) {
                var item = dataView.getItem(rows[i]);
                var rowid = item.id;
                dataView.deleteItem(rowid);
            }
        }

【问题讨论】:

  • 旁注:您的代码似乎包含多余的} 括号。
  • 已编辑代码。我的错。在我的代码中没有这样的错误

标签: javascript jquery slickgrid


【解决方案1】:

您的代码中似乎做了很多对我来说不太有意义的事情:

在您的 onAddNewRow 处理程序中,您是:

  1. 正在添加的行无效。为什么?你不需要这样做。
  2. 您直接更新“数据”数组,然后对“数据视图”执行无操作调用。您使用什么作为数据源 - data 或 dataView?
  3. 您不需要告诉网格 updateRowCount() 或 render()。

在您的删除处理程序中:

  1. 不要直接访问 SlickGrid DOM(即 $(".slick-cell.selected"))!请改用 grid.getSelectedRows()。
  2. 如果您使用“dataView”作为数据源,您应该已经连接了事件以侦听 DataView 更改并根据需要更新网格。不需要调用 grid.invalidate() 和 grid.render()。

【讨论】:

    猜你喜欢
    • 2018-12-22
    • 2022-06-10
    • 2013-08-06
    • 1970-01-01
    • 2016-07-18
    • 2020-09-18
    • 2019-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多