Ответ 1
Как вы можете найти в коде grid.base.js вызов $.ajax
, заполняющий сетку, выглядит следующим образом:
$.ajax($.extend({
url: ts.p.url,
type: ts.p.mtype,
dataType: dt,
data: $.isFunction(ts.p.serializeGridData) ?
ts.p.serializeGridData.call(ts, ts.p.postData) : ts.p.postData,
complete: function (req, st) {
...
}
...
}, $.jgrid.ajaxOptions, ts.p.ajaxGridOptions));
Таким образом, вы можете использовать опцию ajaxGridOptions
jqGrid для установки или переопределения любого параметра запроса $.ajax
. Поскольку я использую только JSON-запросы на свой сервер, я устанавливаю общую настройку contentType
как
$.extend($.jgrid.defaults, {
datatype: 'json',
{ajaxGridOptions: { contentType: "application/json" },
{ajaxRowOptions: { contentType: "application/json", type: "PUT" },
...
});
ajaxRowOptions
используются в grid.inlinedit.js для редактирования строк. Для редактирования формы есть другие параметры, которые я устанавливаю также как глобальные настройки:
$.extend($.jgrid.edit, {
ajaxEditOptions: { contentType: "application/json" },
...
});
$.extend($.jgrid.del, {
ajaxDelOptions: { contentType: "application/json" },
mtype: "DELETE",
...
});
Как вы можете видеть, что мой сервер - это служба RESTfull (разработанная главным образом в WFC, а остальная часть - в ASP.NET MVC). Поскольку $.jgrid.edit
является настройкой для элементов "добавить" и "изменить", я не мог изменить mtype: "PUT"
только для "редактирования", поэтому я делаю это в параметрах navGrid()
.
Последний параметр ajax, который вы можете найти, также интересен для установки: ajaxSelectOptions
. Вы можете установить его так же, как ajaxGridOptions
. Параметры ajaxSelectOptions
полезны, если вы используете параметр dataUrl
внутри editoptions
или searchoptions
. Я использую, например, dataUrl
внутри colModel
для определения столбцов типа edittype: 'select'
. Возможные значения опции выбора будут загружаться из сервера для встроенного или редактирования формы или внутри диалогового окна поиска. Поскольку для такой загрузки данных используются ajax, существует соответствующая опция ajaxSelectOptions
.
С уважением.