У меня есть служба wcf для большого количества отчетов, которая возвращает данные json в мою jqgrid.Все работает как положено.Однако из-за большого количества пользовательских входных данных для каждого запроса отчета я решил использовать строку json, соответствующую серии «входных моделей», которые я настроил на сервере.Я не хочу связываться с длинными сложными строками запросов в моих маршрутах.
Вопрос: Как я могу добавить параметры строки запроса jqGrid, чтобы моя строка json загружалась на сервер?Я пробовал «loadBeforeSend», но я не могу переопределить URL-адрес ajax.Я не могу использовать функцию для параметра url, потому что параметры сетки еще не доступны.Есть идеи?Спасибо.
Моя функция jqGrid (сокращенно для краткости):
function loadGrid() {
var tbl = $('#tbl');
tbl.jqGrid({
loadBeforeSend: function () {
var ai = {
dateFrom: dbDateTime($('#at-datefrom').val()),
dateTo: dbDateTime($('#at-dateto').val()),
sidx: tbl.getGridParam('sortname'),
sord: tbl.getGridParam('sortorder'),
page: tbl.getGridParam('page'),
rows: tbl.getGridParam('rowNum')
};
var newUrl = getBaseURL() + 'ReportingService.svc/report/?json=' + JSON.stringify(ai);
tbl.jqGrid().setGridParam({ url: newUrl });//Everything works perfect up to this point. All the values are in my json string and my url is correct.
},
url: '', //Empty because I need to override it
datatype: 'json',
mtype: 'GET',
ajaxGridOptions: { contentType: 'application/json' },
loadError: function (xhr, status, error) { alert(status + "" + error); }
}).navGrid('#attendance-pager', { edit: false, add: false, del: false });
}