【发布时间】:2016-08-11 07:47:06
【问题描述】:
(免费)jqGrid 是否提供回调函数,我可以在加载网格之前设置postData?
在我的情况下,它是伪 postData,因为我使用带有 loadOnce : true 的 jqGrid。
我正在使用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") 重新加载也没有工作。
感谢您的帮助!
【问题讨论】:
-
我不确定我是否正确理解了这个问题。您的服务器 interpret
filters参数是否存在问题,它返回 已过滤 数据而不是返回完整的未过滤数据?如果没有,那么您可以在创建网格时直接设置 postData.filters 并使用loadonce: true, forceClientSorting: true。免费的jqGrid会过滤返回的数据,在那里排序并显示最终结果的第一页。不需要reloadGrid。 -
@Oleg 不,我的服务器脚本不解释过滤器。我想我只是不知道如何在创建期间设置
postData。我不知道forceClientSorting。
标签: javascript jquery ajax jqgrid free-jqgrid