如何强制jqgrid在查询字符串中使用OData查询数据
How to force jqgrid to query data using OData in query string
免费的 jqgrid 使用
读取远程 json 数据
$.jgrid.useJSON = true;
$.extend(true, $.jgrid.defaults, {
mtype: 'GET',
url: '@Html.Raw(Url.Action("Entity", "API",))'
} );
搜索 window 是使用
定义的
$.extend(true, $.jgrid.search, {
multipleSearch: true,
recreateFilter: true,
closeAfterSearch: true,
overlay: 0,
recreateForm: true
});
如果按下搜索按钮,会创建丑陋的过滤器查询字符串参数,例如
http://localhost:52216/admin/API/Entity/DoklstlG?search=true&nd=1448746804617&rows=20&page=1&sidx=customer&_sord=desc&filters=%7B%22groupOp%22%3A%22AND%22%2C%22rules%22%3A%5B%7B%22field%22%3A%22Klient_nimi%22%2C%22op%22%3A%22cn%22%2C%22data%22%3A%22a%22%7D%5D%7D
如何更改此 url,尤其是以 OData 格式生成的过滤器子句?
我阅读了 jqgrid OData 插件维基文章,但还没有发现这种可能性。
我无法向您推荐现成的解决方案,但我为您指明了实现需求的方向。
首先,我建议您阅读 the answer? It shows how to use server side sorting and paging of OData. One need to use $top
, $skip
, $orderby
and $inlinecount
URI parameters which can be set inside of serializeGridData
. One can implement filtering in the same way. One need to convert filters
parameter, created by jqGrid, to the object and parse all the rules. One need generate the corresponding $filter
parameter, which support OData (like here and here)。重要的是要了解通用实现并不那么容易,它可能取决于您使用的 OData 实现的确切版本。
免费的 jqgrid 使用
读取远程 json 数据 $.jgrid.useJSON = true;
$.extend(true, $.jgrid.defaults, {
mtype: 'GET',
url: '@Html.Raw(Url.Action("Entity", "API",))'
} );
搜索 window 是使用
定义的$.extend(true, $.jgrid.search, {
multipleSearch: true,
recreateFilter: true,
closeAfterSearch: true,
overlay: 0,
recreateForm: true
});
如果按下搜索按钮,会创建丑陋的过滤器查询字符串参数,例如
http://localhost:52216/admin/API/Entity/DoklstlG?search=true&nd=1448746804617&rows=20&page=1&sidx=customer&_sord=desc&filters=%7B%22groupOp%22%3A%22AND%22%2C%22rules%22%3A%5B%7B%22field%22%3A%22Klient_nimi%22%2C%22op%22%3A%22cn%22%2C%22data%22%3A%22a%22%7D%5D%7D
如何更改此 url,尤其是以 OData 格式生成的过滤器子句? 我阅读了 jqgrid OData 插件维基文章,但还没有发现这种可能性。
我无法向您推荐现成的解决方案,但我为您指明了实现需求的方向。
首先,我建议您阅读 the answer? It shows how to use server side sorting and paging of OData. One need to use $top
, $skip
, $orderby
and $inlinecount
URI parameters which can be set inside of serializeGridData
. One can implement filtering in the same way. One need to convert filters
parameter, created by jqGrid, to the object and parse all the rules. One need generate the corresponding $filter
parameter, which support OData (like here and here)。重要的是要了解通用实现并不那么容易,它可能取决于您使用的 OData 实现的确切版本。