我有一个用于大量报告的 wcf 服务,该服务将 json 数据返回到我的 jqgrid。一切都按预期进行。但是,由于每个报告查询有大量用户输入,我选择使用与我在服务器上设置的一系列“输入模型”相匹配的 json 字符串。我不想在我的路线中弄乱长而复杂的查询字符串。
问题:如何添加 jqGrid 查询字符串参数来执行我上传到服务器的 json 字符串?我已经尝试过“loadBeforeSend”,但我似乎无法覆盖ajax url。我无法对 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 });
}
如果你使用mtype: 'GET'
并且新只是设置附加参数,这些参数将附加到您可以使用的 URLpostData
jqGrid的参数。如果定义了您将获得的最佳结果postData
作为一个函数(参见here了解详情)。
另一种方法是使用请求前 where this
将被设置为网格 DOM 元素,您可以访问(并根据需要进行更改)url
jqGrid 的参数this.p.url
。你当然可以使用$(this).jqGrid('setGridParam','url',yourNewUrl);
而不是直接改变this.p.url
.
我不建议你使用datatype
作为你的情况下的函数。顺便说一下你不能使用请求前在使用的情况下datatype
作为函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)