jqGrid обладает множеством функций, и найти такую функцию, которая действительно соответствует вашим требованиям, не так-то просто.
Сначала я отвечу на второй вопрос. Метод editGridRow имеет параметр viewPagerButtons , который можно использовать для скрытия стрелок навигатора в формах добавления / редактирования. В наиболее распространенном случае, если вы используете navGrid для включения редактирования формы, вы должны включить viewPagerButtons: false
в качестве свойства параметра prmEdit
и prmAdd
для navGrid
. Вы можете изменить настройки по умолчанию для редактирования формы, используя
$.extend($.jgrid.edit, {viewPagerButtons: false});
Я лично изменяю настройки по умолчанию во всех реальных проектах, использующих jqGrid. Я включил множество изменений по умолчанию в jqGrid в один файл JavaScript и включил его в главную страницу сразу после jquery.jqGrid.min.js
. Подробнее о настройках jqGrid. Использование $.jgrid.defaults
, $.jgrid.nav
$.jgrid.edit
, $.jgrid.del
, $.jgrid.search
, $.jgrid.view
, $.jgrid.inlineEdit
, $.jgrid.ajaxOptions
может не только уменьшить код для создания каждой сетки, которую вы используете. Это может упростить управление общими настройками проекта и улучшить сопровождение проекта разработки программного обеспечения.
К вашему первому вопросу: я хорошо понимаю проблемы, которые вы описываете. В одном моем старом посте я
описал некоторые предложения, как расширить текущие функции jqGrid для реализации ваших требований тоже. Жаль, но таких функций пока нет в jqGrid. Тем не менее, вы можете использовать приемы, описанные здесь , здесь , здесь и здесь . Вы должны понимать, что изменения, которые вы вносите в colModel
внутри beforeInitData (например, редактирование, скрытие или любые другие изменения столбца), будут напрямую использоваться при создании формы. Наиболее удобно, что вы можете изменить colModel
в отношении setColProp метод. Уже внутри beforeShowForm или afterShowForm обратных вызовов вы можете сбросить свойства столбца colModel
в исходное состояние.