Я использую Kendo UI для Jquery в MVC.Код ниже работает нормально, чтобы переместиться в следующую ячейку с событием нажатия клавиши «Ввод» и «Вкладка», но не работает проверка с нажатием клавиши, так что если есть решение, пожалуйста, поделитесь со мной.Редактируемый режим «incell».
Заранее спасибо!
$("#grdSalesManRoute").data("kendoGrid").addRow();
var grid = $("#grdSalesManRoute").data('kendoGrid');
$(grid.tbody).on("keydown", "td", function (e) {
if (e.keyCode == kendo.keys.ENTER || e.keyCode == kendo.keys.TAB || (e.shiftKey && e.which == kendo.keys.TAB)) {
debugger;
if (e.keyCode == kendo.keys.TAB) {
e.preventDefault()
}
if (e.keyCode == kendo.keys.ESC) {
colIndex++;
direction = "h";
}
var row = $(this).closest("tr");
var rowIndex = $("tr", grid.tbody).index(row);
var colIndex = $("td", row).index(this);
var direction = "";
grid.closeCell();
if (e.shiftKey && e.which == kendo.keys.TAB) {
colIndex--;
direction = "h";
}
else if (e.keyCode == kendo.keys.ENTER || e.keyCode == kendo.keys.TAB) {
colIndex++;
direction = "h";
}
if (colIndex == 0 && rowIndex < $("#grdSalesManRoute").data("kendoGrid").dataSource.total()) {
rowIndex--;
colIndex = 4;
}
else if (colIndex == 5) {
if ($("#grdSalesManRoute").data("kendoGrid").dataSource.total() - 1 > rowIndex) {
rowIndex++;
colIndex = 1;
}
}
var cell = $("#grdSalesManRoute tbody tr:eq(" + rowIndex + ") td:eq(" + colIndex + ")");
if (cell.length > 0) {
grid.editCell(cell);
}
else {
var cellSelector = "";
if (direction == "h") {
$("#grdSalesManRoute").data("kendoGrid").addRow();
// cellSelector = "#grdSalesManRoute tbody tr:eq(" + rowIndex + ") td:eq(1)";
}
else {
cellSelector = "#grdSalesManRoute tbody tr:eq(0) td:eq(" + colIndex + ")";
grid.editCell($(cellSelector));
}
}
}
});