查看用于 jqgrid 过滤的Oleg 解决方案,我编写了一个代码来过滤我的 jqgrid。不同的是有3个不同的研究领域,但只有一个按钮来执行全局搜索。它工作得很好,但是即使第一次搜索正确执行,第二次搜索执行了 2 次,第三次搜索执行了 4 次,第四次搜索了 8 次等等,如果我进行大量搜索会导致几个问题。这是代码:
var grid= $("#mygrid");
function executeSearchInSoftgrid() {    
$("#executeSearch").click(function() {
    f = {groupOp:"AND",rules:[]};
    var searchFiler = $("#filterField1").val(), f;
    var searchFiler2 = $("#filterField2").val(), f;
    var searchFiler3 = $("#filterField3").val(), f;
    if (searchFiler.length === 0) {
        grid[0].p.search = false;
        $.extend(grid[0].p.postData,{filters:""});
    }
    if (searchFiler2.length === 0) {
        grid[0].p.search = false;
        $.extend(grid[0].p.postData,{filters:""});
    }
    if (searchFiler3.length === 0) {
        grid[0].p.search = false;
        $.extend(grid[0].p.postData,{filters:""});
    }
    f.rules.push({field:"field1",op:"cn",data:searchFiler});
    f.rules.push({field:"field2",op:"cn",data:searchFiler2});
    f.rules.push({field:"field3",op:"cn",data:searchFiler3});
    grid[0].p.search = true;
    $.extend(grid[0].p.postData,{filters:JSON.stringify(f)});
    grid.trigger("reloadGrid",[{page:1,current:true}]);
    alert("searching");
}); 
}
无论我在哪里调用函数(loadcomplete、gridcomplete、readyfunction),行为都是一样的。有任何想法吗???谢谢
编辑
这是我调用函数的地方,它终于起作用了:
var initialize = true;
$("#mygrid")
        .jqGrid({
            gridComplete:function () {
                if(initialize == true) {
                executeSearchInSoftgrid();
                initialize = false;
                //....
                }