我試圖修改kendo Grid的InCell編輯模式的行爲。我的意思是我試圖用箭頭導航到單元格,但是我在做這件事時遇到了問題。Kendo Grid在移動到下一個單元格後沒有保存值
這是我的代碼:
$("#grid").keydown(function (e) {
debugger;
isEditStarted = true;
var totlaColumns = $($(" #grid td")[0]).nextAll().length + 1;
currentTD = $(" #grid td.k-edit-cell");
var indexx = $("#grid td").index($(" #grid td.k-edit-cell"));
//currentTDIndex = $(currentTD).parent().children().index($(currentTD)) + 1;
if (isEditStarted) {
var code = e.keyCode || e.which;
if (code === 37) {
//left Key
//var eventEnter = jQuery.Event("keypress");
//eventEnter.which = 18;
//eventEnter.keyCode = 18;
var x = "#" + $($(" #grid td")[$(" #grid td").index($(" #grid td.k-edit-cell"))]).find('input').attr('id');
var valuem = $(x).val();
var position = $(currentTD).prevAll("td").length + 1;
var length = $(currentTD).prevAll("td").length;
if (length > 1) {
debugger;
$("#grid tr td").removeClass('BorderHighlight');
$(x).val(valuem);
$($(currentTD).prevAll("td")[0]).click();
$($(currentTD).prevAll("td")[0].childNodes[0]).addClass('BorderHighlight');
}
}
else if (code === 38) {
currentTD = $(" #grid td.k-edit-cell");
var position = $(currentTD).prevAll("td").length + 1;
var currentRow = $(" #grid td.k-edit-cell").parent().parent().find('tr').index($(" #grid td.k-edit-cell").parent());
var newPosition = currentRow > -1 ? (currentRow - 1) * totlaColumns + position - 1 : 0;
$($(" #grid td")[newPosition]).click();
$($(" #grid td")[newPosition].childNodes[0]).addClass('BorderHighlight');
}
else if (code === 39) {
currentTD = $(" #grid td.k-edit-cell");
var length = $(currentTD).nextAll("td").length;
if (length > 1) {
$("#grid tr td").removeClass('BorderHighlight');
$($(currentTD).nextAll("td")[0]).click();
$($(currentTD).nextAll("td")[0].childNodes[0]).addClass('BorderHighlight');
}
}
else if (code === 40) {
currentTD = $(" #grid td.k-edit-cell");
var position = $(currentTD).prevAll("td").length + 1;
var currentRow = $(" #grid td.k-edit-cell").parent().parent().find('tr').index($(" #grid td.k-edit-cell").parent());
var newPosition = currentRow > -1 ? (currentRow + 1) * totlaColumns + position - 1 : 0;
$($(" #grid td")[newPosition]).click();
$($(" #grid td")[newPosition].childNodes[0]).addClass('BorderHighlight');
}
}
})
這裏是 Demo的功能。我能夠通過鍵瀏覽網格,但是這樣做時網格值不會被保存。我的意思是當我點擊一個空單元格,然後輸入一個值並移動到下一個單元格時,使用右箭頭鍵,那麼以前的值不會被保存。但價值被保存,當我們點擊Enter鍵或Tab鍵或Alt(兩次),然後移動到下一個單元,則在值被保存
PS:演示鏈接連接
請務必發佈您的代碼與問題 – 2015-02-07 15:29:13