Dojo dgrid更新行

时间:2016-09-26 17:40:47

标签: javascript dojo dgrid

我有一个从dojo / request填充的dgrid:

var TrackableMem = declare([Memory, Trackable]);
var store = new TrackableMem({
    data : resp.results
});

此网格有几列是文本框。当它们被更改时,我想确认用户确实想要编辑它们:

grid.on("dgrid-datachange", function(evt) {
    if(!confirm("change this field?")) {
         // revert cell value back to the old one.
         grid.get("collection").get(evt.cell.row.id).notes = evt.oldValue;
         grid.refresh();
    } else {
        // do ajax call here.....
    }
}

这不起作用,新的更新值保留在那里,但是当我在开发者控制台中运行相同的东西时它确实有效:

grid.get("collection").get(0).notes = "testing";
grid.refresh();

有什么想法吗? evt.cell.row.id& evt.oldValue是正确的值。

1 个答案:

答案 0 :(得分:1)

由于尚未保留值,因此无需手动还原dgrid-datachange处理程序中的数据。

这是有目的地完成的,因此您可以取消更新。在你的情况下,你可以这样做:

grid.on("dgrid-datachange", function(evt) { if(!confirm("change this field?")) { evt.preventDefault(); } else { // do ajax call here..... } }

您可以详细了解这个in the offical docsthis Github ticket