jqGrid:如何调用&x27;重新加载网格';从外部过滤器刷新网格的步骤

jqGrid:如何调用&x27;重新加载网格';从外部过滤器刷新网格的步骤,jqgrid,Jqgrid,我在jqGrid之外有一些过滤器,可以触发网格重新加载。这篇文章让我很好地了解了如何使用postData选项实现它: 不幸的是,代码片段是片段,我无法确定调用的整体顺序。以下是我当前方法的简明视图: <script> $(document).ready(function() { $("#submit").click(function(e) { e.preventDefault(); myGrid.trigger('reloadGrid');

我在jqGrid之外有一些过滤器,可以触发网格重新加载。这篇文章让我很好地了解了如何使用postData选项实现它: 不幸的是,代码片段是片段,我无法确定调用的整体顺序。以下是我当前方法的简明视图:

<script>
  $(document).ready(function() {
    $("#submit").click(function(e) {
      e.preventDefault();
      myGrid.trigger('reloadGrid');
    }); 
  });

var url="${servicesUrl}/projects";

var myGrid = $("#projectList").jqGrid({
    url: url,
    datatype: 'json',
    mtype: 'GET',  
    // ...
});
</script>

$(文档).ready(函数(){
$(“#提交”)。单击(功能(e){
e、 预防默认值();
触发器('reloadGrid');
}); 
});
var url=“${servicesUrl}/projects”;
var myGrid=$(“#项目列表”).jqGrid({
url:url,
数据类型:“json”,
mtype:'获取',
// ...
});

我应该如何构造代码,以便每次单击Submit按钮都会触发网格重新加载?一旦我解决了这个问题,我相信我将能够添加posData部分,我的问题主要是调用的整体顺序。我不确定ready()函数中应该包含哪些调用,以及如何正确调用“reloadGrid”。非常感谢您的帮助。

这对我来说很有效:我在
beforeRequest
事件上设置了一个回调,在发出每个请求之前更新
postData
属性

请注意,您需要将所有jqGrid init代码放在
$(document).ready(function(){})中函数,否则您的表元素可能还不在DOM中

var url="${servicesUrl}/projects";

$(document).ready(function() {
    var $table = $("#projectList");

    $table.jqGrid({
        url: url,
        datatype: 'json',
        mtype: 'GET',  

        beforeRequest: function() {
            var postData = $table.getGridParam('postData');
            //add parameters to postData here
        }
        // ...
    });

    $("#submit").click(function(e) {
        e.preventDefault();
        $table.trigger('reloadGrid');
    }); 
});

非常感谢。我只需按照你提供的电话顺序进行操作,效果非常好。事实上,我不需要使用“beforeRequest”,我只是将它添加到我的网格选项中:postData:{brandId:function(){return jQuery(#brandsDropdown option:selected”).val();},@Pablo Ah。。。很好,我不知道你可以使用postData的函数!谢谢