Estoy utilizando la vista en árbol de KendoUI y quiero dar al usuario la posibilidad de filtrarlo. Incluso hay una demostración que hace lo que quiero (http://demos.kendoui.com/web/treeview/api.html)Filtro KendoUI TreeView
El problema es que el filtro solo se aplica a la 1ª jerarquía de TreeView , por lo tanto, si el texto de filtro está presente en un elemento secundario pero no en el elemento primario, no se mostrará el elemento secundario.
Ejemplo:
- artículo 1
- artículo 2
- artículo xzy
- ABC Punto
Si el texto de búsqueda sería "abc", sin ítem sería mostrado. En su lugar me gustaría tener el siguiente resultado:
- artículo 2
- ABC Punto
¿Alguien sabe cómo hacer esto? Este es el código que estoy utilizando:
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);
miradas, funciona sólo si existe un nodo (necesidad de ajustar para manejar el caso cuando hay múltiples nodos con un mismo texto) con el texto que coincide exactamente con el texto del filtro. Digamos que si un texto de nodo es "Artículo abc" y si el usuario ingresa "abc" como texto de filtro, findByText ("abc") devuelve nulo a medida que intenta hacer coincidir el texto del nodo exacto. corrígeme si mi suposición es incorrecta. –
de hecho lo hace. si necesita relacionar los nodos, puede usar el selector [jQuery contains] (http://api.jquery.com/contains-selector/) de la siguiente manera: '$ (". k-in: contains ('photo ') ")' –
Intento jQuery contiene el selector, pero el problema es que solo busca los nodos que se expanden (representados en HTML) y no coincidirá con los nodos secundarios de los nodos contraídos. ¿Alguna otra alternativa para esto? –