Kendo Grid 行更改(未选中)时是否有事件?
Kendo Grid Is there an event for when a row changes (not selected)?
我希望检测 Kendo 网格的行何时发生变化,通过导航而不是选择。
我的意思是我会有一个带有 selectable: false 的网格,在批处理编辑模式下,我想在用户切换到新行时(就像 Access 一样)更新数据源(在代码中) ).
我查看了 this example 并更改了以下属性..
selectable: false,
navigatable: true,
editable: true,
不幸的是,changed 事件似乎不会触发制表符或箭头键(在导航模式下)。
有没有人知道我可以按照上述方法做的任何其他方法(即知道我们何时通过导航更改了行)
在此先感谢您的帮助!
您可以使用编辑事件来确定您是否在新行中。
selectable: false,
navigatable: true,
editable: true,
edit: function(e) {
if (e.sender.cellIndex($(e.container)) === 0 &&
$(e.container).closest("tr").index() !== 0) {
console.log("next row; update DS");
}
},
您还可以存储您所在的最后一行并使用它确定更改,如果以其他方式在行之间切换而不是通过 tab 键(或向后 tab 键时)是相关的。
如果你不希望网格是可编辑的,那就更难了。这是一个快速技巧:
var grid = $("#grid").data("kendoGrid");
var elem = $(grid.table)[0];
var handlers = $._data(elem, "events")["keydown"][2];
var oldHandler = handlers.handler;
// replace the existing event handler attached by kendo grid
var newHandler = function (e) {
oldHandler(e);
var current = grid.current();
var closestRow = $(current).closest("tr");
var rowIndex = $(closestRow).index();
if (rowIndex !== grid._lastNavRowIndex) {
if (typeof grid._lastNavRowIndex !== "undefined") {
kendoConsole.log("we just changed to row " + rowIndex);
}
grid._lastNavRowIndex = rowIndex;
}
};
handlers.handler = newHandler;
});
试试看 here.
This 可能是您要查找的内容。当您需要与数据相关的事件时,您必须查找 DataSource 事件。当您需要与 UI 相关的事件时,您可以查看 Grid 事件。
我希望检测 Kendo 网格的行何时发生变化,通过导航而不是选择。
我的意思是我会有一个带有 selectable: false 的网格,在批处理编辑模式下,我想在用户切换到新行时(就像 Access 一样)更新数据源(在代码中) ).
我查看了 this example 并更改了以下属性..
selectable: false,
navigatable: true,
editable: true,
不幸的是,changed 事件似乎不会触发制表符或箭头键(在导航模式下)。
有没有人知道我可以按照上述方法做的任何其他方法(即知道我们何时通过导航更改了行)
在此先感谢您的帮助!
您可以使用编辑事件来确定您是否在新行中。
selectable: false,
navigatable: true,
editable: true,
edit: function(e) {
if (e.sender.cellIndex($(e.container)) === 0 &&
$(e.container).closest("tr").index() !== 0) {
console.log("next row; update DS");
}
},
您还可以存储您所在的最后一行并使用它确定更改,如果以其他方式在行之间切换而不是通过 tab 键(或向后 tab 键时)是相关的。
如果你不希望网格是可编辑的,那就更难了。这是一个快速技巧:
var grid = $("#grid").data("kendoGrid");
var elem = $(grid.table)[0];
var handlers = $._data(elem, "events")["keydown"][2];
var oldHandler = handlers.handler;
// replace the existing event handler attached by kendo grid
var newHandler = function (e) {
oldHandler(e);
var current = grid.current();
var closestRow = $(current).closest("tr");
var rowIndex = $(closestRow).index();
if (rowIndex !== grid._lastNavRowIndex) {
if (typeof grid._lastNavRowIndex !== "undefined") {
kendoConsole.log("we just changed to row " + rowIndex);
}
grid._lastNavRowIndex = rowIndex;
}
};
handlers.handler = newHandler;
});
试试看 here.
This 可能是您要查找的内容。当您需要与数据相关的事件时,您必须查找 DataSource 事件。当您需要与 UI 相关的事件时,您可以查看 Grid 事件。