Сроки события gridComplete с использованием jqGrid от Trirand - PullRequest
1 голос
/ 23 сентября 2011

Я не уверен, что событие 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}]);
}

1 Ответ

0 голосов
/ 23 сентября 2011

Попробуйте использовать loadComplete.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...