Я реализовал сетку с разбивкой на страницы, сортировкой, фильтрацией на стороне сервера. Теперь мой пользователь сохранил эту сетку со всей информацией для сортировки и фильтрации. Я создал запрос со всей этой информацией. Это означает, что когда я снова загружаю эту сетку, я передаю ей отфильтрованные и отсортированные данные. Несмотря на то, что я предоставил отсортированные отфильтрованные данные, теперь события попадают в БД, поскольку я применяю свойства фильтрации и сортировки, как показано ниже. В этой ситуации, если я отсортировал 7 полей в сетке, он попадает в БД 8 раз (7 для применения фильтра и одно для загрузки сетки в первый раз). Это создает так много проблем с производительностью.
$(openFrom + "#jqxgrid").jqxGrid('sortby', sessionStorage.getItem("GridSortColumn"), sortdirectionvalue);
$(openFrom + "#jqxgrid").jqxGrid('addfilter', currentColumnFilterValue['columnname'], filterGroup);
$(openFrom + "#jqxgrid").jqxGrid('applyfilters');
Вот мой исходный объект.
var source =
{
datafields: DataFields,
datatype: "json",
async: false,//If it is true, server side filtering and sorting won't work together
url: '../Widget/GetDataForGrid/',
type: 'POST',
sort: function () {
},
filter: function () {
},
beforeprocessing: function (data) {
}
};
Итак, мое требование: мне просто нужно показать фильтр, отсортировать выбор в сетке, не переходя в БД. Это применимо только в первый раз (когда сначала загружается сетка с отсортированной отфильтрованной информацией). И когда пользователь снова щелкает фильтр или пользователь пытается отсортировать другое поле, оно должно работать как при фильтрации и сортировке на стороне сервера.
Любая помощь горячо приветствуется.