jqGrid:如何调用'reloadGrid'来从外部过滤器刷新网格

Pab*_*blo 7 jqgrid

我在jqGrid之外有过滤器,应该触发网格重新加载.这个条目让我对如何实现它有了一些很好的了解,使用postData选项:如何过滤jqGrid数据不使用内置的搜索/过滤器框 不幸的是代码片段是片段,我无法弄清楚整个序列是什么电话应该是.这是我当前方法的简要视图:

<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>
Run Code Online (Sandbox Code Playgroud)

我应该如何构建代码,以便每次单击"提交"按钮都会触发网格重新加载?一旦我解决了这个问题,我确信我能够添加posData部分,我的问题主要是整个调用顺序.我不确定哪个调用应该在ready()函数内部,以及如何正确调用'reloadGrid'.任何帮助非常感谢.

cfs*_*cfs 6

这对我有用:我在beforeRequest事件上设置回调,postData在每个请求发出之前更新属性.

请注意,您需要将所有jqGrid初始化代码放在$(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');
    }); 
});
Run Code Online (Sandbox Code Playgroud)