我正在使用 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 函数有什么建议吗?
最佳答案
其实也不应该。
想一想 - 如果用户从网格内发起操作,网格就会触发该事件。它如何知道您从外部/以编程方式更改了某些内容?
只需将对更改事件的处理移至单独的函数中,然后从 onCellChange 处理程序和直接更新数据的位置调用该函数即可。
关于slickgrid - 触发 OnChange 单元格事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9314337/