看着Oleg solution jqgrid過濾,我寫了一個代碼來過濾我的jqgrid。它有不同的有3個不同的研究領域,但只有一個按鈕來執行全局搜索。它工作的很好,但即使第一次搜索正確執行,第二次搜索執行2次,第三次搜索4次,第四次8次等等,如果我進行大量搜索,會導致幾個問題。 下面的代碼:jqgrid過濾器奇怪的行爲
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;
//....
}
我檢查了我的js文件,我在loadcomplete中只調用了一次executeSearchInSoftgrid() – Franky 2012-07-30 16:39:54
@Franky:'loadcomplete'將在每個網格刷新**上調用**。因此,您可以在每個網格重新加載/分頁/排序/過濾時綁定越來越多的事件。創建網格後,您應該將代碼移出'loadcomplete'。 – Oleg 2012-07-30 16:44:53
嘗試在gridcomplete,loadcomplete,readyfunction .. 的行爲總是相同的,警報彈出1,2,4,8,16 ..次 – Franky 2012-07-30 16:56:38