jqGrid дифференцировать в dataInit добавлять и редактировать формы



Как я могу различать в событии dataInit, добавляю ли я новые данные или редактирую их?



Заранее благодарю.

598   1  

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

    Ничего не найдено.