Javascript jqgrid在重新加载时保留自定义post参数

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

所以我有一个日期选择器和一个选择列表。然后是一个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中。请参见下面显示所有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。