jqGrid сохраняет текущее редактируемое значение в параметре savedRow
. Во время работы restoreRow
jqGrid использует значения: он вызывает setRowData
с сохраненным значением.
Вы писали, что используете inlineNav
. Это означает, что вы не вызываете метод restoreRow
напрямую. Вместо этого на jqGrid вызовы restoreRow
, если пользователь выберет другую строку или нажмите Esc ключ. Чтобы иметь возможность изменять стандартное поведение restoreRow
, вам необходимо использовать обратные вызовы/события, которые jqGrid вызывает/запускает во время обработки restoreRow
. Таким образом, важно знать , какую версию jqGrid вы используете (можете использовать) и из какой вилки jqGrid, потому что набор обратных вызовов/событий и точное поведение зависят от используемой вилки и используемой версии. Я разрабатываю вилку free jqGrid и рекомендую вам ее использовать.
Метод restoreRow
поддерживает beforeCancelRow
и afterrestorefunc
обратные вызовы, которые вы можете использовать для решения вашей проблемы. Вы можете изменить некоторые свойства savedRow
внутри beforeCancelRow
, чтобы решить вашу проблему. В качестве альтернативы вы можете просто сделать еще один вызов setRowData
внутри afterrestorefunc
, чтобы установить значение столбца восстановленной строки на значение, которое вы хотите иметь. Точное указание beforeCancelRow
или afterrestorefunc
обратных вызовов в inlineNav
зависит от версии/fork jqGrid. Вы должны опубликовать эту информацию, если у вас возникнет проблема с реализацией, основанная на моем описании выше.
Удивительные комментарии. Большое спасибо. Мой код в соответствии с ur sugesstion: $ ("# Mygrid"), jqgrid ("restoreRow", lastsel, {"afterrestorefunc": function (response) {$ ("# Mygrid"), jqgrid ('setRowData', lastsel, { Имя: «XXX», Возраст: «YYY», Пол: «ZZZ»}}}); Прекрасно работает – Kavitha
@Kavitha: Добро пожаловать! – Oleg