Sto usando la vista ad albero di KendoUI e voglio dare all'utente la possibilità di filtrarlo. C'è anche una demo che fa quello che voglio (http://demos.kendoui.com/web/treeview/api.html)Filtro KendoUI TreeView
Il problema è che il filtro viene applicato solo alla 1a gerarchia di TreeView , quindi se il testo del filtro è presente in un bambino ma non in quello genitore, il bambino non verrà visualizzato.
Esempio:
- Articolo 1
- Articolo 2
- Articolo xzy
- abc Articolo
Se il testo di ricerca sarebbe "abc", no l'oggetto sarebbe visualizzato. Invece mi piacerebbe avere il seguente risultato:
- Articolo 2
- abc Articolo
Qualcuno sa come fare questo? Questo è il codice che sto usando:
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);
look funziona solo se esiste un nodo (bisogno di modificare per gestire il caso in cui sono presenti più nodi con stesso testo) con testo che corrisponde esattamente al testo del filtro. Diciamo che se il testo di un nodo è "Item abc" e se l'utente inserisce "abc" come testo del filtro, findByText ("abc") restituisce null mentre cerca di far corrispondere il testo del nodo esatto. correggimi se la mia ipotesi era sbagliata. –
davvero sì. se è necessario associare liberamente i nodi, è possibile utilizzare [jQuery contiene selettore] (http://api.jquery.com/contains-selector/) in questo modo: '$ (". k-in: contains ('photo ') ")' –
Provato jQuery contiene selettore, ma il problema è che cerca solo i nodi che sono espansi (resi in HTML) e non corrisponderà ai nodi figli dei nodi compressi. Qualche altra alternativa per questo? –