Фильтр кендо при разборе входного значения

Мой пример: http://dojo.telerik.com/oWABE/2

Здесь у меня есть объект данных, содержащий "status", которое является целым числом! (это 1,2 или 3)

В моей Решетке, которая маскируется на Новое, В ожидании и Закрыто

Чтобы показать строки (New, Pending и Closed), я создал функцию разбора в shema -> для фильтрации для работы с проанализированными значениями, нельзя использовать шаблон в определении столбцов, но нужно проанализировать его в источнике данных!

Status: { type: "int",
         parse: function(status) {    
         console.log(status,"stat");            
           switch(status){
             case 1: return"New"; break;
             case 2: return"Pending"; break;
             case 3: return"Solved"; break;
             case 5: return"Closed"; break;
          }
     }
},

Когда вызывается этот парсер, появляется "console.log", и я замечаю, что ПОСЛЕ! Я фильтрую на "Новый" журнал читает:

n stat
undefined "stat"

... когда я впервые запускаю страницу, журнал читает (как и ожидалось):

1 "stat"
2 "stat"
3 "stat"

Фильтр не работает (попробуйте выбрать "Новый" в качестве примера)

Любая помощь?

2 ответа

Решение

Необходимо использовать "schema.parse option"!

dataSource: {
              data: data,
              schema: {
                parse: function(response) {
                  var products = [];
                  for (var i = 0; i < response.length; i++) {
                    switch(response[i].Status){
                      case 1: response[i].Status = "New"; break;
                      case 2: response[i].Status = "Pending"; break;
                      case 3: response[i].Status = "Solved"; break;
                      case 5: response[i].Status = "Closed"; break;
                    }   
                    console.log(response[i]);
                    products.push(response[i]);
                  }                         
                  return products;
                },
                model: {
                  fields: {                         
                    OrderID: { type: "number" },           
                    Status: { type: "string"},
                    ShipCountry: { type: "string" }
                  }
                }
              }
            },

Вот ответ от Кендо: http://www.telerik.com/forums/kendo-filter-on-parsed-input-value

Я не уверен, что это правильно, но попробуйте этот пример:

.kendoDropDownList({
    dataSource: new kendo.data.DataSource({
        data: [
            { title: "Software Engineer" },
            { title: "Quality Assurance Engineer" },
            { title: "Team Lead" }
        ]
    }),
    dataTextField: "title",
    dataValueField: "title"
});

http://jsfiddle.net/jddevight/wGjCZ/

Другие вопросы по тегам