Фильтр кендо при разборе входного значения
Мой пример: 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"
});