我正在使用SlickGrid的示例7的变体,它允许在双击单元格时从列表中选择值。但是,此方法不会触发onCellChange事件,并且我没有捕获对数据的所有更改。以下是代码示例。
grid.onDblClick.subscribe(function (e) {
e.preventDefault();
var cell = grid.getCellFromEvent(e);
if (grid.getColumns()[cell.cell].id != "classID") {return};
$("#contextMenu")
.data("row", cell.row)
.css("top", e.pageY)
.css("left", e.pageX)
.show();
$("body").one("click", function () {
$("#contextMenu").hide();
});
$("#contextMenu").click(function (e) {
if (!$(e.target).is("li")) {return};
var row = $(this).data("row");
data[row].classID = $(e.target).attr("data"); //< data saved to grid here
grid.updateRow(row);
});
});
有关如何触发onCellChange函数的任何消息?
答案 0 :(得分:1)
也不应该。
考虑一下 - 如果用户从网格中启动操作,网格将触发该事件。你怎么知道你在外部/程序上改变了什么?
只需将您对change事件的处理移动到一个单独的函数中,并从onCellChange处理程序和直接更新数据的位置调用它。