Вы можете использовать localStorage
(или даже sessionStorage
если вы хотите, чтобы фильтры истечь, когда браузер/вкладка закрывается) для этого , DataSource имеет событие с именем change
, которое вызывается каждый раз, когда выполняется изменение, включая фильтрацию. Внутри этого события вы можете получить объект фильтра Кендо (с определенной структурой) и сохранить его в хранилище. В параметрах инициализации сетки вы можете установить свойство filter
dataSource, которое ожидает упомянутый выше объект фильтра, и сетка будет автоматически фильтроваться при его инициализации. Проверьте следующий код:
Получить фильтры перед инициализацией GRID в:
var filters = localStorage.getItem("gridFilters");
if (filters)
{
filters = JSON.parse(filters);
}
Затем установите эти свойства к DataSource:
change: function(e)
{
// This saves the filter object to the storage
localStorage.setItem("gridFilters", JSON.stringify(e.sender._filter));
},
filter: filters
Demo
Обратите внимание, что вы не указали свои спецификации сетки, поэтому я предполагаю, что вы отфильтрованы на стороне сервера. Если вы это сделаете, вышеуказанный код не сработает, и вам придется попробовать другой подход. Я надеюсь, что это помогает.
Большое спасибо за это предложение, единственная проблема заключается в том, что я продолжаю получать эту ошибку: Uncaught SyntaxError: Неожиданный токен u в этой строке, скорее всего: var filters = localStorage.getItem ("gridFilters"); –
Можете ли вы показать мне, что возвращает из 'localStorage.getItem (« gridFilters »)', чистая строка? – DontVoteMeDown
Я продолжаю получать фильтры как неопределенные в отладчике Google Chrome –