Kendo Hierarchical Datasource для дерева, фильтр к проверенным узлам
Я использую иерархический источник данных Kendo для Kendo UI Treeview. В случае щелчка я хочу оставить только проверенные ромы в источнике данных.
Я старался
$('#treeview')
.getKendoTreeView()
.dataSource
.filter({
field: "checked",
operator: "eq",
value: true });
Но безрезультатно.
У меня есть правильное поле?
Кроме того, для бонусных баллов, как удалить фильтр?
1 ответ
checked
правильное поле, если вы определили его в шаблоне так:
$("#treeview").kendoTreeView({
checkboxes: { template: "<input type='checkbox' name='checkedNodes' #= item.isChecked ? 'checked' : '' # value='#= item.id #' />" },
dataSource: [{
id: 1, text: "My Documents", expanded: true, spriteCssClass: "rootfolder", items: [
{ id: 2, text: "about.html", expanded: true, isChecked: false, spriteCssClass: "folder" },
{ id: 3, text: "index.html", expanded: true, isChecked: true, spriteCssClass: "folder" }
]
}]
});
в моем случае это называется isChecked
(увидеть item.isChecked
в моем коде).
Но, чтобы правильно фильтровать, будьте осторожны: filter
действует только на текущем уровне (см., например, этот вопрос).
И для вашего бонусного вопроса, чтобы удалить фильтр, просто примените следующий код:
$('#treeview')
.data("kendoTreeView")
.dataSource
.filter({ });
(так же, как и раньше на всех уровнях в вашей иерархии!).
редактировать
Вот некоторая скрипка, чтобы поиграть с фильтром: http://jsfiddle.net/scaillerie/RHh67/.