2015-06-02 3 views
1

Я пытаюсь реализовать функцию для выбора элемента в многоэкранном элементе kendo с фильтрацией сервера. когда пользователь нажимает вкладку на выбранном элементе. Вот мой код kepdown события:Kendo multi-select с выбором клавиши табуляции

if (e.keyCode === 9) { 
     var selectedItem = multiSelect.current(); 

     if (selectedItem) { 

      var selectedIndex = selectedItem.data("idx"); 

      if (selectedIndex >= 0) { 

       var currentValue = multiSelect.value().slice();  
       var dataitems = multiSelect.dataSource.view(); 
       var selectedDataItem = dataitems[selectedIndex]; 

       multiSelect.dataSource.filter({}); 
       currentValue.push(selectedDataItem.relatedId); 
       multiSelect.value(currentValue); 

       multiSelect.trigger("change"); 
      } 
     } 
     } 

Но она отлично работает до тех пор, как я ищу в этом окне просмотра данных, т.е. позволяет сказать, что я выбираю два значения, начиная с Cloud, а затем я выбираю значение, начинающееся с App затем кендо будет удалять предыдущие два значения, начиная с Облака, и элемент управления будет содержать только одно значение, выбранное последним.

Я отлажена код кендо, что проблема в функции _index кендо, потому что он находит значение в dataSource.view

я воссоздал вопрос на http://dojo.telerik.com/OtAvi

ответ

0

Ваш код не работает, потому что у вас есть serverFiltering набор для true в Datasource:

dataSource: { 
    type: "odata", 
    serverFiltering: true, 
    transport: { 
     read: { 
      url: "http://demos.telerik.com/kendo-ui/service/Northwind.svc/Products", 
     } 
    } 
}, 

Поскольку данные фильтруется на сервере, вызов multiSelect.dataSource.filter({}); только очистка уже отфильтрован данные. При этом, когда вы вызываете multiSelect.value(currentValue);, могут быть выбраны только значения из текущего фильтрованных данных. Это вызывает выбор только для хранения элементов текущего текущего элемента данных.

Если у вас нет веской причины не делать этого, самое легкое исправить - установить serverFiltering на false.

+1

благодарит за ответ. Я не могу избавиться от фильтрации серверов, потому что мы запрашиваем 128 записей за раз, поэтому, если что-то, что не загружено при первой загрузке, оно должно быть извлечено с сервера. – Haris

+1

он отлично работает, когда я выбираю значение с помощью мыши, поэтому должно быть что-то, что делает функция щелчка kendo, которой я не являюсь. – Haris

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