【发布时间】: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