Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Trirand jqGrid的gridComplete事件的时间安排_Javascript_Jquery_Jqgrid - Fatal编程技术网

Javascript Trirand jqGrid的gridComplete事件的时间安排

Javascript Trirand jqGrid的gridComplete事件的时间安排,javascript,jquery,jqgrid,Javascript,Jquery,Jqgrid,我不相信gridComplete事件是在所有数据加载到网格中并且所有其他进程都完成之后运行的,如中所述 我有一个正确加载的网格。在gidComplete事件中,我将触发一些筛选方法.extend和.setGridParam,以便在加载网格后立即应用筛选器。然而,尽管我的自定义函数是通过控制台启动的,但并没有应用过滤器。如果我使用setTimeout将执行延迟一秒钟左右,那么实际上应用了过滤器。所以在我看来,gridComplete发射得太早了 顺便提一下,名为setGridFilter的过滤器函

我不相信gridComplete事件是在所有数据加载到网格中并且所有其他进程都完成之后运行的,如中所述

我有一个正确加载的网格。在gidComplete事件中,我将触发一些筛选方法.extend和.setGridParam,以便在加载网格后立即应用筛选器。然而,尽管我的自定义函数是通过控制台启动的,但并没有应用过滤器。如果我使用setTimeout将执行延迟一秒钟左右,那么实际上应用了过滤器。所以在我看来,gridComplete发射得太早了

顺便提一下,名为setGridFilter的过滤器函数也会在绑定到选择菜单的onchange事件中激发,用户可以在该菜单中从预设过滤器选项中进行选择。这很好用。这个函数的gridComplete调用失败了

$("#list3").jqGrid({
   url: 'blah.php',
   colNames: ['blah1','blah2','etc.','PresentationTemplateID'],
   colModel: [name: 'blah1', index: 'blah1'],
       [name: 'blah2', index: 'blah2'],
       [name: 'etc.', index: 'etc.'],
       [name: 'PresentationTemplateID', index: 'PresentationTemplateID', hidden:true]
   viewRecords:true,
   loadonce: true,
   pager: '#pager3',
   search:true,
   gridComplete: function(){
       //var t = setTimeout('setGridFilter()',1000);   //this works, for some reason
       setGridFilter();  //this does not
   }
});

function setGridFilter() {
   var postdata = $("#list3").jqGrid('getGridParam','postData');
   var text = $("#ddlGridFilterMenu").val(), f;
   $.extend(postdata,{filters:'',searchField: 'PresentationTemplateID', searchOper: 'eq', searchString: text});
   $("#list3").jqGrid('setGridParam', { search: text.length>0, postData: postdata });
   $("#list3").trigger("reloadGrid",[{page:1}]);
}

请改用loadComplete。

谢谢,@graphicsdivide-我尝试过使用loadComplete,但同样失败。