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

时间:2014-02-20 22:44:46

标签: javascript jquery 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('');
});

正在发生的事情是我在jqgrid的postData中发送我的selectlist和datepicker的值。 仅在单击搜索按钮时。到现在为止还挺好。我可以在服务器端获取值。问题是当我单击网格寻呼机上的刷新按钮时,先前发送的参数保留在postData中。见下文,firebug显示所有帖子参数。

第一个是正常的默认加载,工作正常。

第二种情况发生在使用我的搜索表单并添加到postData之后,然后我点击了网格寻呼机的刷新按钮。

enter image description here

如何重置网格本机重装机制的postData以排除我的自定义参数? 我的自定义参数只能在我告诉它进入时进入。

请指教。

2 个答案:

答案 0 :(得分:1)

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

就像一个魅力。