Встроенное редактирование запускается с помощью кнопки действия edit formatter.
Если щелкнуть по другой строке, старая строка останется в режиме встроенного редактирования.
Как завершить редактирование старой строки, если щелкнуть в другой строке.
Согласно
http://www.trirand.com/blog/?page_id=393/bugs/wrong-hovering-effect-in-actions-formatter-of-jqgrid-4-1-0
выглядит так: это решено в 4.1.2, но на самом деле проблема сохраняется.
Обновление
При использовании обходного решения для Олега возникает исключение, если используется пользовательский элемент.
Строка, где происходит исключение, отмечена в комментарии в коде ниже
// this is jqgrid custom_element property value:
function combobox_element(value, options, width, colName, entity, andmetp) {
var elemStr;
if (options.id === options.name)
// form
elemStr = '<div>' +
'<input class="FormElement ui-widget-content ui-corner-all" style="vertical-align:top" size="' +
options.size + '"';
else
elemStr = '<div>' +
'<input class="FormElement ui-widget-content " style="height:17px;vertical-align:top;width:' +
width + 'px" ';
elemStr += ' value="' + value + '"' + ' id="' + options.id + '"/>';
elemStr += '<button style="height:21px;width:21px;" tabindex="-1" /></div>';
var newel = $(elemStr)[0];
setTimeout(function () {
$(newel).parent().css({ display: "inline-block" }).parent().css({ 'padding-bottom': 0 });
// click in edit button in action input variable is undefined, newel does not contain input element:
var input = $("input", newel);
}, 500);
return newel;
}
Update2
Я пытаюсь объяснить новую проблему более четко.
Перед добавлением
onEdit = @"function (id) {
if (typeof (lastSelectedRow) !== 'undefined' && id !== lastSelectedRow) {
cancelEditing($('#grid'));
}
lastSelectedRow = id;
}
Исключение обработчика события для пользовательского элемента не происходит.
После добавления обработчика события onEdit ниже настраиваемые элементы редактирования больше не создаются. Поэтому пользовательские элементы редактирования не могут использоваться во встроенном редактировании, если присутствует этот обработчик onEdit.
Я закомментировал отменить код редактирования, но проблема сохраняется.
Похоже, этот обработчик события onEdit предотвращает создание пользовательского элемента редактирования.
Обновление 3
Я попробовал демо, предоставленное в ответе Олега. Если встроенное редактирование запускается двойным щелчком в строке, кнопки действий не меняются. В этом случае невозможно использовать кнопки сохранения и отмены.