这是可能的,但问题是由许多小问题组成的。人们应该首先了解重新加载和过滤是如何工作的,哪些jqGrid参数对其很重要,然后必须在程序中实现相应的小步骤。
第一个问题是在使用
loadonce: true
选项您当前使用的代码
$grid.jqGrid('setGridParam', {datatype: 'json'}).trigger('reloadGrid');
但免费jqGrid允许
$grid.trigger('reloadGrid', {fromServer: true});
或者。免费jqGrid保存原始
datatype
内部文件中的值(“json”、“jsonp”、“xml”等)
dataTypeOrg
选项及其恢复
数据类型
从…起
数据类型组织
如果选项
fromServer: true
已使用。了解这一点很重要
地方的
过滤只不过是重新加载网格,而网格
datatype: 'local'
. 因此,我们应该
不使用
fromServer:true
在所有重新加载时(不应使用
reloadGridOptions: { fromServer: true }
如果想要使用强大的
地方的
对从服务器加载的数据进行排序和筛选。
第二个问题是过滤从服务器返回的数据
之前
数据将显示在jqGrid中。在旧的jqGrid中这是不可能的,但免费的jqGrid可以选择
forceClientSorting: true
,这会使厚度变大。选项的名称不太好,但我不想更改它,因为它已被使用。期权力
本地排序和筛选数据
之前
从服务器加载的数据的第一页将显示在网格中。
下一个问题是用过滤器中的数据填充过滤器工具栏,包括显示过滤器操作的数据(如果
searchOperators: true
选项
filterToolbar
使用)。选项
loadFilterDefaults: true
,默认情况下激活,请执行该操作。这是一个额外的免费jqGrid选项,在旧的jqGrid中不存在。因此,设置如下
postData: {
filters: JSON.stringify({
groupOp: "AND",
groups: [],
rules: [
{field: "ship_via", op: "ne", data: "FedEx"},
{field: "closed", op: "eq", data: true},
{field: "name", op: "bw", data: "test"}
]
})
},
search: true,
forceClientSorting: true
用于
https://jsfiddle.net/OlegKi/hvwn1tf7/3/
做自己需要的一切。
接下来应该考虑的主要是保存/恢复
postData.filters
和设置
search: true
如果一个人想应用过滤器,但他了解所有的工作原理,那么他可以很容易地实现所需的行为。