Javascript jqgrid在重新加载时保留自定义post参数
所以我有一个日期选择器和一个选择列表。然后是一个jqgrid,工作良好,过滤等等。这就是我正在做的Javascript jqgrid在重新加载时保留自定义post参数,javascript,jquery,jqgrid,Javascript,Jquery,Jqgrid,所以我有一个日期选择器和一个选择列表。然后是一个jqgrid,工作良好,过滤等等。这就是我正在做的 $("#sessSearch").unbind('click').on('click', function(){ var mydate = $("#sessSelector").val(); var mytype = $("#sess_type :selected").val(); if(mydate && mytype){ $("#listSE
$("#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中。请参见下面显示所有post参数的firebug
第一个是正常的默认加载,工作正常
第二种情况发生在使用我的搜索表单并添加到postData之后,然后我单击了网格页面的刷新按钮
如何重置网格本机重新加载机制的postData以排除自定义参数?
我的自定义参数只有在我让它进入时才能进入
请告知 可以使用getGridParam获取内部对象postData的引用。该对象的属性sess_date和sess_type具有上次setGridParam调用的值。可以使用“删除”从对象中删除属性。所以下面的代码应该可以工作
var postData=$listses.jqGridgetGridParam,postData;
删除postData.sess_日期;
删除postData.sess_类型;
非常感谢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。