2015-11-11 4 views
0

У меня проблема при попытке сохранить выбранные фильтрованные элементы. У меня есть следующий сценарий: я фильтрую что-то, а затем нажимаю на строку, и он выводит меня на новую страницу для редактирования, когда я возвращаюсь к фильму, исчезает (это не должно). Пожалуйста, помогите мне с этимKendo Grid Keep Filter State после перехода на другую страницу

упоминания: я не использую MVC сетки только простой яваскрипта один

ответ

0

Вы можете использовать localStorage (или даже sessionStorage если вы хотите, чтобы фильтры истечь, когда браузер/вкладка закрывается) для этого , DataSource имеет событие с именем change, которое вызывается каждый раз, когда выполняется изменение, включая фильтрацию. Внутри этого события вы можете получить объект фильтра Кендо (с определенной структурой) и сохранить его в хранилище. В параметрах инициализации сетки вы можете установить свойство filter dataSource, которое ожидает упомянутый выше объект фильтра, и сетка будет автоматически фильтроваться при его инициализации. Проверьте следующий код:

  1. Получить фильтры перед инициализацией GRID в:

    var filters = localStorage.getItem("gridFilters"); 
    
    if (filters) 
    { 
        filters = JSON.parse(filters); 
    } 
    
  2. Затем установите эти свойства к DataSource:

    change: function(e) 
    { 
        // This saves the filter object to the storage 
        localStorage.setItem("gridFilters", JSON.stringify(e.sender._filter)); 
    }, 
    filter: filters 
    

Demo

Обратите внимание, что вы не указали свои спецификации сетки, поэтому я предполагаю, что вы отфильтрованы на стороне сервера. Если вы это сделаете, вышеуказанный код не сработает, и вам придется попробовать другой подход. Я надеюсь, что это помогает.

+0

Большое спасибо за это предложение, единственная проблема заключается в том, что я продолжаю получать эту ошибку: Uncaught SyntaxError: Неожиданный токен u в этой строке, скорее всего: var filters = localStorage.getItem ("gridFilters"); –

+0

Можете ли вы показать мне, что возвращает из 'localStorage.getItem (« gridFilters »)', чистая строка? – DontVoteMeDown

+0

Я продолжаю получать фильтры как неопределенные в отладчике Google Chrome –

Смежные вопросы