2017-09-11 2 views
0

J'ai une vue Arborescence (3 niveaux) dans la grille de Kendo et j'utilise la fonction Grille Kendo pour développer/réduire la vue arborescente. Mon exigence est d'étendre/réduire le niveau de données de l'arbre par niveau et pas tous en même temps.UI de la grille de Kendo: Réduire le noeud Arbre au lieu de l'arbre complet

Expand fonctionne très bien en utilisant le code suivant

$(".treeview").data("kendoTreeView").expand(".k-item"); 

problème est avec l'effondrement. En cliquant sur l'arbre du bouton Réduire s'effondre complètement, mais je veux qu'il ne s'effondre qu'une seule fois.

J'ai essayé suivant

$(".treeview").data("kendoTreeView").collapse(".k-item"); Collapses to first level 
$(".treeview").data("kendoTreeView").collapse(".k-group"); same: Collapses to first level 

Je pourrais utiliser treeview.collapse (treeview.findByText ("foo")); quelque chose comme ça mais comme les données sont dynamiques, je ne connais pas le texte exact.

Est-il possible de réduire un seul nœud au lieu de l'arborescence entière?

Répondre

1

Si le nœud est dynamique d'abord trouver sa valeur par une fonction

function collapse() { 

    var text= calculateNode(test); 

    var treeview = $(".treeview").data("kendoTreeView"); 
    for (var i = 0; i < nTextValue.length; i++) { 
     treeview.collapse(treeview.findByText(text[i])); 
    } 
} 

et réduire tous les nœuds à ce niveau

0

Cela fonctionne à partir d'un accordéon et non d'un kendoGrid mais j'imagine qu'il peut fonctionner de la même manière.

var panelCol = $(".treeview").data("kendoTreeView") 
panelCol.on('.collapse', function() { 
    panelCol.not(document.getElementById($(this).attr('id'))).removeClass('in') 
    .addClass('collapse').closest('.panel').find('a').addClass('collapsed'); 
}); 
+0

Merci pour la suggestion, mais je l'ai fixé en calculant le nom et en utilisant (treeview.findByText ("foo")); –