(免费的) jqGrid是否提供了一个回调函数,让我可以在网格加载之前设置postData
?
在我的例子中,它是伪postData
,因为我将jqGrid与loadOnce : true
一起使用。我正在使用postData
将过滤器应用于网格。我通过ajax调用加载此数据。
我想一次从服务器加载所有的网格数据--然后在本地应用过滤器。因此,当用户更改这些过滤器(例如,通过使用工具栏-搜索/过滤)时,它仅应用于本地数据。
我已经试过了:
beforeInitGrid : function()
{
$("#grid").jqGrid('setGridParam', {
search: true,
postData : {"toolbar":[{"name":"customer","value":"difranco"}],"postdata":{"_search":"true","nd":"1461054190117","rows":"30","page":"1","sidx":"my_date","sord":"asc","totalrows":"10000","filters":"{\"groupOp\":\"AND\",\"rules\":[{\"field\":\"customer\",\"op\":\"cn\",\"data\":\"difranco\"}]}"},"sortname":"my_date","sortorder":"asc","page":"1","rowNum":"30"}
});
}
同样使用回调函数:gridComplete
、loadComplete
;我尝试将postData
参数直接设置为jqGrid。
但如果不使用.trigger("reloadGrid")
重新加载,这两种方法都不起作用。
谢谢你的帮助!
发布于 2016-04-19 09:15:51
在我看来,在创建网格时,您可以只使用参数
loadonce: true,
forceClientSorting: true,
search: true,
postData: {
filters: {
groupOp: "AND",
rules: [
{field: "customer", op: "cn", data: "difranco"}
]
}
}
你不需要使用gridComplete
、loadComplete
和.trigger("reloadGrid")
。请参阅the demo或this one,我将其包含在the readme中以释放jqGrid 4.13.1。演示使用本地数据,但同样适用于远程数据。请看一些更复杂的here和here演示,它们主要演示了另一个强大的特性:additionalProperties
和使用sortfunc
的自定义排序,但它将loadonce: true, forceClientSorting: true
和postData.filters
与search: true
结合使用。
重要的是,服务器应该忽略所有向其发送jqGrid的参数并返回所有数据,这一点很重要。免费的jqGrid将根据postData.filters
过滤服务器返回的数据,对结果进行排序,并将最终结果的第一页显示给用户。用户可以使用本地分页,可以修改过滤器等。不存在对服务器的额外要求。
https://stackoverflow.com/questions/36713180
复制