删除 jqGrid Post 数据中的 JSON 对象
Remove JSON Object in jqGrid Post Data
我有一个带有过滤器的网页,带有两个按钮,可以为 jqGrid 加载数据。
当用户点击 'Filter' 时,我生成了 postData json 对象并将其发送到服务器。没问题。
但是当用户点击 'Clear' 时,我想清除过滤器并从 jqGrid 重新加载所有数据。这就是我坚持的地方。
这就是我的过滤器发布到服务器的方式。
jQuery 点击按钮的代码在这里:
$('#btnFilter').click(function (event) {
var filterObject = {
RecordID: $('#RecordID').val()
, Student: $('#Student').val()
}
$("#jqGrid").jqGrid().setGridParam({ postData: { Filters: filterObject }, page: 1 }).trigger("reloadGrid");
});
$('#btnClear').click(function (event) {
var filterObject = {};
$("#jqGrid").jqGrid().setGridParam({ postData: { Filters: filterObject }, page: 1 }).trigger("reloadGrid");
});
尽管如此,我确实为带有 { } 的 filterObject 设置了 null JSON 对象,浏览器缓存了 Filters 值,但我无法设法删除它们。在下面的屏幕截图中,我们可以看到 Ajax Post 和单击 'Clear' 按钮时发送到服务器的对象。
我想知道如何在单击 'Clear' 时删除 Filters { } 对象。或者如果有更好的方法来实现我想要的,你能建议一下吗?
如果有人想知道,您可以传递 null 来使之前的 JSON 对象无效。完整代码在这里。
$("#jqGrid").jqGrid().setGridParam({ postData: { Filters: null}, page: 1 }).trigger("reloadGrid");
如果您了解 jqGrid 将所有参数保存在一个内部对象中,这将很容易做到。你可以使用
var p = $("#jqGrid").jqGrid("getGridParam");
获取jqGrid的所有选项。您可以直接在对象中修改属性。 postData
可通过 p.postData
访问。如果你只需要修改 postData
你可以使用
var postData = $("#jqGrid").jqGrid("getGridParam", "postData");
获取内部postData
对象(p.postData
)对postData
属性的引用。因此,您 不需要使用 setGridParam
来修改数据。要删除 Filters
属性 你之前设置的
$("#jqGrid").jqGrid("setGridParam", { postData: { Filters: filterObject }, page: 1 });
你可以使用
var postData = $("#jqGrid").jqGrid("getGridParam", "postData");
delete postData.Filters;
我有一个带有过滤器的网页,带有两个按钮,可以为 jqGrid 加载数据。
当用户点击 'Filter' 时,我生成了 postData json 对象并将其发送到服务器。没问题。
但是当用户点击 'Clear' 时,我想清除过滤器并从 jqGrid 重新加载所有数据。这就是我坚持的地方。
这就是我的过滤器发布到服务器的方式。
jQuery 点击按钮的代码在这里:
$('#btnFilter').click(function (event) {
var filterObject = {
RecordID: $('#RecordID').val()
, Student: $('#Student').val()
}
$("#jqGrid").jqGrid().setGridParam({ postData: { Filters: filterObject }, page: 1 }).trigger("reloadGrid");
});
$('#btnClear').click(function (event) {
var filterObject = {};
$("#jqGrid").jqGrid().setGridParam({ postData: { Filters: filterObject }, page: 1 }).trigger("reloadGrid");
});
尽管如此,我确实为带有 { } 的 filterObject 设置了 null JSON 对象,浏览器缓存了 Filters 值,但我无法设法删除它们。在下面的屏幕截图中,我们可以看到 Ajax Post 和单击 'Clear' 按钮时发送到服务器的对象。
我想知道如何在单击 'Clear' 时删除 Filters { } 对象。或者如果有更好的方法来实现我想要的,你能建议一下吗?
如果有人想知道,您可以传递 null 来使之前的 JSON 对象无效。完整代码在这里。
$("#jqGrid").jqGrid().setGridParam({ postData: { Filters: null}, page: 1 }).trigger("reloadGrid");
如果您了解 jqGrid 将所有参数保存在一个内部对象中,这将很容易做到。你可以使用
var p = $("#jqGrid").jqGrid("getGridParam");
获取jqGrid的所有选项。您可以直接在对象中修改属性。 postData
可通过 p.postData
访问。如果你只需要修改 postData
你可以使用
var postData = $("#jqGrid").jqGrid("getGridParam", "postData");
获取内部postData
对象(p.postData
)对postData
属性的引用。因此,您 不需要使用 setGridParam
来修改数据。要删除 Filters
属性 你之前设置的
$("#jqGrid").jqGrid("setGridParam", { postData: { Filters: filterObject }, page: 1 });
你可以使用
var postData = $("#jqGrid").jqGrid("getGridParam", "postData");
delete postData.Filters;