Я использую treeview KendoUI и хочу дать пользователю возможность его фильтровать. Существует даже демо, которое делает то, что я хочу (http://demos.kendoui.com/web/treeview/api.html)
Проблема заключается в том, что фильтр применяется только к 1-й иерархии TreeView, поэтому, если текст-фильтр присутствует в дочернем, но не родительский, тогда ребенок не будет отображаться.
Пример:
- Пункт 1
- Пункт 2
- Элемент xzy
- Пункт abc
Если текст поиска будет "abc", ни один элемент не будет отображаться. Вместо этого я хотел бы получить следующий результат:
- Пункт 2
- Пункт abc
Кто-нибудь знает, как это сделать? Это код, который я использую:
var tree_view_data = new kendo.data.HierarchicalDataSource({
transport: {
read: {
url: "getall/items",
dataType: "json"
}
},
schema: {
model: {
children: "ChildItems"
}
}
});
//init tree view itself
var $treeview = $("#div-treeview").kendoTreeView({
dataSource: tree_view_data,
dataTextField: [ "Text", "ChildrenText" ]
});
//allow filter of navigation tree
var refreshTree = function () {
tree_view_data.filter({
field: "Text", //if I would use "ChildrenText" here nothing be displayed at all if filtertext is set
operator: "contains",
value: $("#tree-text-search").val()
});
};
$("#tree-text-search").change(refreshTree).keyup(refreshTree);