У меня есть пользовательская функция фильтрации, она передает собственный URL-адрес и перезагружает данные сетки с помощью:
function filter_grid(filter) {
grid = $(filter).parents('.ui-jqgrid-view').find('.grid');
/* build the url in here*/
$(grid).setGridParam({loadonce:false, datatype:'json'});
jQuery(grid).setGridParam({url:myurl}).trigger("reloadGrid");
$(grid).setGridParam({loadonce:true});
}
Это работает нормально и фильтрует данные, как и ожидалось.Однако я разрешаю пользователю открывать сетку в модальном окне, и это также будет работать при первом открытии модального окна , но , если вы затем закроете окно и снова откроете его ... фильтрация не удалась.Я не вижу ошибок в консоли ... просто перезагрузка никогда не происходит.Любые предложения?
Уточнение
В двух словах есть меню выбора, прикрепленное к каждой сетке.Вы можете выбрать опцию в этом меню, и она перезагрузит сетку с отфильтрованными данными с помощью функции filter_grid
.Он перезагружается путем перезагрузки сетки с новым URL-адресом, который передает некоторые параметры для фильтрации данных.
В событии gridComplete я добавляю элемент ввода select (который я заполню позже) к каждой сетке на странице.У каждого из них есть класс «фильтра»:
$("#grid1 .ui-jqgrid-titlebar:eq(1)").append("<select id='pdd_user' name='filter_user' class='category_select filter'><option value=''>All</option></select>")
Я наблюдаю за кликами в классе фильтра:
$('.filter').live('change', function() {
filter_grid(this);
});
, который вызывает функцию filter_grid
(ту, которую я включил вышес первым редактированием моего вопроса), как вы можете видеть, и это то, что заполняет сетку отфильтрованными данными:
jQuery(grid).setGridParam({url:myurl}).trigger("reloadGrid");
Я установил ее в loadonce: false, потому что сетка была установлена в loadonce:Значение true, когда оно было изначально создано (для целей локальной сортировки), поэтому я установил для него значение loadonce: false, перезагрузите сетку с новыми URL-адресами и параметрами, а затем снова установите для нее значение loadonce: true, чтобы снова включить локальную сортировку.