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后,然后我单击刷新按钮的网格页面。

enter image description here

如何重置POSTDATA网格本地重载机制,以排除我的自定义参数? 我的自定义参数只有当我告诉它进去时才会进入。

请指教。

您可以使用getGridParam获取内部对象postData上的参考。该对象的属性sess_datesess_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"); 
    } 
}); 

工程就像一个魅力。

+0

您可以使用标准刷新按钮。您只需使用'navGrid'的beforeRefresh'回调来清理'postData'。 – Oleg