2010-03-13 2 views
1

Je suis actuellement en train d'utiliser un RadTreeView et je viens de passer à l'utilisation de Load-On-Demand (ServerSideCallback) pour améliorer les performances. Sur chaque noeud, j'utilise un RadContextMenu pour ouvrir une RadWindow. Dans la RadWindow, je mets à jour les informations sur le nœud que j'ai sélectionné dans RadTreeView (comme changer son nom, etc.). Quand je ferme la RadWindow, je déclenche la reliaison de RadTreeView (puisque j'ai fait des changements et que je veux obtenir les données les plus fraîches). Mon problème est que lorsque j'ai 4 ou 5 niveaux de profondeur dans l'arbre, je n'ai aucun moyen de resélectionner le nœud dont je viens. C'était facile quand je n'utilisais pas Load-On-Demand puisque tous les nœuds faisaient juste partie de l'arbre. Comment puis-je faire cela maintenant que j'utilise Load-On-Demand?Problème de sélection de Load-On-Demand de RadTreeView

J'ai déjà écrit une méthode pour faire le travail en obtenant TOUS les parentIds qui mènent au nœud en question. Par exemple, pour l'arbre donné:

A 
|__ B 
|__ C 
|__ D 
     |__ E 
     |__ F 

Disons que quand je REBIND, je voulais revenir à « F », je l'ai déjà une méthode qui retourne « A, B, F », qui est le bien chemin qualifié de retour à "F".

Merci, Dans ce cas, Brian

Répondre

1

vous devez définir le ExpandMode de tous les parents de ce noeud à InfoClient. Sinon, le premier parent ne sera pas développé (c'est l'idée de la charge à la demande) et le nœud en question ne sera pas visible. Alternativement, vous pouvez trouver le premier parent et appeler sa méthode javascript expand(), puis dans l'événement OnClientNodePopulated trouver le parent suivant et appeler sa méthode expand() et ainsi de suite jusqu'à ce que vous arriviez au nœud désiré.