Как вы можете найти в коде 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
.
С уважением.