Я использую самый лучший плагин jqGrid и нашел много помощи на этом сайте, выполнив поиск, но я обнаружил проблему, которую не могу решить или найти решение. Это будет мой первый пост здесь.
Я использую filterToolbar для поиска в моей сетке. Из-за характера серверной части, с которой мне нужно взаимодействовать, я не могу использовать фильтры, которые предоставляет jqGrid, и вместо этого мне нужно перехватить поиск и изменить постданные перед отправкой. Я делаю это с помощью опции filterToolbar "beforeSearch" следующим образом:
$("#SC_grid").jqGrid('filterToolbar', {stringResult: true, searchOnEnter: true, defaultSearch : "cn", beforeSearch: function() {
var postData = $("#SC_grid").jqGrid('getGridParam','postData');
var newPostData = '1=1';
var searchData = jQuery.parseJSON(postData.filters);
for (var iRule=0; iRule<searchData.rules.length; iRule++) {
newPostData = newPostData + " AND " + searchData.rules[iRule].field + " LIKE '%" + searchData.rules[iRule].data + "%' ";
}
$("#SC_grid").jqGrid('setGridParam',{postData: { filter: newPostData, filters: ''} } );
return false;
}});
Это отлично работает для меня, чтобы создать часть моего выбора перед отправкой. Я также хотел бы использовать расширенный поиск таким же образом, но не могу понять, как перехватить POST перед отправкой. Похоже, что опция beforeSearch () недоступна, а опции afterShowSearch или onClose не имеют правильного времени. Есть предложения о том, как действовать?
отметка