Добавить кнопку панели инструментов используется для добавления новой строки в jqgrid. Добавить форму, которая появляется, содержит все заполненные поля пустые. Как установить значения полей формы формы из значений столбцов из строки, которая была текущая/выбрана, когда была добавлена команда добавления? Используются удаленные данные json. Или, если это проще, как вызвать метод сервера, передающий текущую/выбранную строку для извлечения значений по умолчанию для добавления формы с сервера?
jqgrid содержит также скрытые столбцы. Если возможные значения из скрытых столбцов из текущей строки также должны быть отправлены для добавления контроллера, если сохраняется форма добавления.
Обновление
Я попытался использовать большое предложение Олега с помощью
afterShowForm: function(formID) {
var selRowData,
rowid = grid.jqGrid('getGridParam', 'selrow');
if (rowid === null) {
// todo: how to cancel add command here
alert('Please select row');
return;
}
selRowData = grid.jqGrid('getRowData', rowid);
if (selRowData === null) {
alert('something unexpected happened');
return;
}
$('#' + 'Baas' + '.FormElement', formID).val(selRowData.Baas);
}
Приложение сохраняет открытую форму после сохранения. После первого сохранения поля Baas пусто. Похоже, что событие afterShowForm запускается только один раз, а не после каждого сохранения. Как исправить это, чтобы добавить несколько строк со значениями по умолчанию без закрытия формы добавления? Как отменить или не разрешить команду "Добавить", если нет выбранной строки?