1 ответ:
Это хороший вопрос! +1 от меня за это.
Нет прямого способа определить внутри
dataInit, вызывается ли он из формы Add или Edit. Точно так же, если вы используете несколько режимов редактирования (например, редактирование формы и встроенное редактирование) и несколько режимов поиска (предварительный поиск диалог и панель инструментов поиска), нет прямого способа определить, в каком месте используется элемент управления.В качестве обходного пути можно использовать следующее. Вы можете определить переменную, которую вы можете задать в различном значении внутри события, которое будет вызвано как в форме добавления, так и в форме редактирования , прежде чем будет вызвано
dataInit. Рассказать о доверии у вас не так уж и большой выбор. Это только событиеbeforeInitData . Таким образом, вы можете сделать следующееvar myGrid = $("#list"), inEdit; $("#list").jqGrid({ // all parameters of the jqGrid definition }); myGrid.jqGrid('navGrid', '#pager', { del: false, search: false }, { // Edit recreateForm: true, beforeInitData: function () { inEdit = true; } }, { // Add recreateForm: true, beforeInitData: function () { inEdit = false; } });Я использовал свойство recreateForm:true дополнительно, чтобы быть уверенным, что при каждом открытии сетки добавления или редактирования форма создается новая и вызывается
dataInit.В демо форма добавления выглядит как
Здесь
dataInitдля "заметок" пишем просто текст "in Add" в соответствующем элементе управления. инверсия. Нет " - это поле, в котором хранится идентификатор. Соответствующий элемент управления<input>формы добавления/редактирования отключен. Таким образом, пользователь не может вносить какие-либо изменения. В случае диалога "добавить"метод$.jgrid.randId()будет использоваться для генерации нового уникального значения id.Соответствующая форма редактирования похожа на рисунок ниже:


Comments