jqgrid保留重新加载的自定义发布参数
问题描述:
所以我有一个日期选择器和一个选择列表。然后一个jqgrid,工作正常,过滤和所有。这就是我正在做的。jqgrid保留重新加载的自定义发布参数
$("#sessSearch").unbind('click').on('click', function(){
var mydate = $("#sessSelector").val();
var mytype = $("#sess_type :selected").val();
if(mydate && mytype){
$("#listSESS").jqGrid('setGridParam',{postData:{sess_date:mydate, sess_type:mytype}}).trigger("reloadGrid");
}else{
alert("The search form is incomplete");
}
$("#sessSelector").val('');
$("#sess_type").val('');
});
正在发生的事情有我沿着我的选择列表的和日期选择器的值沿着POSTDATA发送的jqGrid的。 仅当点击搜索按钮时。到现在为止还挺好。我可以在服务器端获得这些值。问题是当我点击网格传呼机上的刷新按钮时,以前发送的参数仍保留在postData中。见下面,萤火虫显示所有职位参数。
第一个是正常的默认加载,工作正常。
第二种情况发生在使用我的搜索表单并添加到postData后,然后我单击刷新按钮的网格页面。
如何重置POSTDATA网格本地重载机制,以排除我的自定义参数? 我的自定义参数只有当我告诉它进去时才会进入。
请指教。
答
您可以使用getGridParam
获取内部对象postData
上的参考。该对象的属性sess_date
和sess_type
与来自最近的setGridParam
调用的值。可以使用delete
从对象中移除属性。所以下面的代码应该可以工作
var postData = $("#listSESS").jqGrid("getGridParam", "postData");
delete postData.sess_date;
delete postData.sess_type;
var postData = $("#listSESS").jqGrid("getGridParam", "postData");
delete postData.sess_date;
delete postData.sess_type;
答
非常感谢Oleg,我基本上禁用了默认的刷新动作,并且使用了寻呼机。所以我的自定义搜索仅在我的搜索羊肉被点击时发送参数。
jQuery("#listSESS").jqGrid('navGrid','#pagerSESS',{edit:false,add:false,del:false,search:false, refresh:false},
{}, // edit options
{}, // add options
{}, // del options
{} // search options
);
$("#listSESS").jqGrid('navButtonAdd', "#pagerSESS", {
caption: "", title: "Reload Grid", buttonicon: "ui-icon-refresh",
onClickButton: function() {
var mypostData = $("#listSESS").jqGrid("getGridParam", "postData");
delete mypostData.sess_date;
delete mypostData.sess_type;
$("#listSESS").jqGrid('setGridParam',{postData:mypostData}).trigger("reloadGrid");
}
});
工程就像一个魅力。
您可以使用标准刷新按钮。您只需使用'navGrid'的beforeRefresh'回调来清理'postData'。 – Oleg