jqgridフィルタリングのOlegソリューションを見て、jqgridをフィルタリングするコードを作成しました。3つの異なる研究分野があるという違いがありますが、グローバル検索を実行するためのボタンは1つだけです。かなりうまくいきますが、1回目は正しく実行しても2回目は2回、3回目は4回、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;
//....
}