所以我有一个日期选择器和一个选择列表。然后一个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('');
});
正在发生的事情是我在jqgrid的postData中发送我的selectlist和datepicker的值。 仅在单击搜索按钮时。到现在为止还挺好。我可以在服务器端获取值。问题是当我单击网格寻呼机上的刷新按钮时,先前发送的参数保留在postData中。见下文,firebug显示所有帖子参数。
第一个是正常的默认加载,工作正常。
第二种情况发生在使用我的搜索表单并添加到postData之后,然后我点击了网格寻呼机的刷新按钮。
如何重置网格本机重装机制的postData以排除我的自定义参数? 我的自定义参数只能在我告诉它进入时进入。
请指教。
答案 0 :(得分:1)
您可以使用getGridParam
在内部对象postData
上获取参考。该对象具有属性sess_date
和sess_type
,其中包含上一次setGridParam
调用的值。可以使用delete
从对象中删除属性。所以下面的代码应该可以工作
var postData = $("#listSESS").jqGrid("getGridParam", "postData");
delete postData.sess_date;
delete postData.sess_type;
答案 1 :(得分:0)
非常感谢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");
}
});
就像一个魅力。