7

我在 jqGrid 之外有过滤器,应该触发网格重新加载。这个条目让我很好地了解了如何使用 postData 选项来实现它:How to filter the jqGrid data NOT using the built-in search/filter box 不幸的是,代码片段是片段,我无法弄清楚整体顺序是什么电话应该是。这是我当前方法的简要视图:

<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>

我应该如何构造代码,以便每次单击提交按钮都会触发网格重新加载?一旦我把它整理好,我确信我将能够添加 posData 部分,我的问题主要在于调用的整体顺序。我不确定哪些调用应该在 ready() 函数中,以及如何正确调用“reloadGrid”。非常感谢任何帮助。

4

1 回答 1

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');
    }); 
});
于 2013-06-26T14:34:11.133 回答