Поскольку вы используете пример из моих старых ответов ( это и это ), я чувствую, что должен ответить и на ваш вопрос.
В старый пример все поля, которые могут быть изменены в диалоговых окнах Добавить или Изменить, имеют свойство editable:true
.Поля, которые должны отображаться только в диалоговом окне Добавить, будут скрыты внутри beforeShowForm дескриптор события.Таким же образом мы можем временно переключить некоторые поля на editable:false
перед вызовом метода editRow и вернуться к editable:true
сразу после вызова:
onSelectRow: function(id) {
if (id && id !== lastSel) {
grid.jqGrid('restoreRow',lastSel);
var cm = grid.jqGrid('getColProp','Name');
cm.editable = false;
grid.jqGrid('editRow', id, true, null, null, 'clientArray');
cm.editable = true;
lastSel = id;
}
}
Вы можетепосмотреть это в реальном времени здесь .
ОБНОВЛЕНИЕ: Свободный jqGrid позволяет определить editable
в качестве функции обратного вызова.См. статью вики .Позволяет сделать столбец редактируемым в некоторых строках и удерживать недоступным для редактирования в других строках.