OVH Cloud OVH Cloud

Refresh treeview

4 réponses
Avatar
nweus
Bonjour a tous,
J'affiche des infos a l'aide d'un Treeview.
Comme la bdd est utilisée par plusieurs personnes en meme temps, il est
nécessaire de recharger le treeview pour faire apparaitre les éventuelles
modifications.
Le pb est que lors du rechargement, j'aimerai que l'arbre apparaisse dans le
meme etat d'ouverture qu'avant le raffraichissement, afin que les
utilisateurs ne soient pas obligés de tout rouvrir. Existe t-il une fonction
permettant de le faire ?
Je pensais sauvegarder en bdd (ou dans une variable), l'état du noeud grace
aux lignes:
Set NodX = Xtree.SelectedItem
etat = NodX.Expanded
Mais il y a un pb: lorsque je clique sur le '+' d'un noeud, le SelectedItem
ne pointe pas sur l'item du '+', mais sur le dernier item sélectionné.

Auriez-vous une solution ?

D'avance merci

4 réponses

Avatar
Laurent Jordi \(www.ezlogic.mc\)
Salut,

Non pas de commande, cependant il te serait possible de ne rafraichir que
l'élément impacté (é ça déscendence éventuellement) mais pour ce faire, et
comme le disais si bien Richard (Clark) il faut être un artiste... et les
artistes se font rare de nos jours...

:)

"nweus" a écrit dans le message de
news:40f6c66e$0$8815$
Bonjour a tous,
J'affiche des infos a l'aide d'un Treeview.
Comme la bdd est utilisée par plusieurs personnes en meme temps, il est
nécessaire de recharger le treeview pour faire apparaitre les éventuelles
modifications.
Le pb est que lors du rechargement, j'aimerai que l'arbre apparaisse dans
le

meme etat d'ouverture qu'avant le raffraichissement, afin que les
utilisateurs ne soient pas obligés de tout rouvrir. Existe t-il une
fonction

permettant de le faire ?
Je pensais sauvegarder en bdd (ou dans une variable), l'état du noeud
grace

aux lignes:
Set NodX = Xtree.SelectedItem
etat = NodX.Expanded
Mais il y a un pb: lorsque je clique sur le '+' d'un noeud, le
SelectedItem

ne pointe pas sur l'item du '+', mais sur le dernier item sélectionné.

Auriez-vous une solution ?

D'avance merci




Avatar
nweus
????
moi pas comprendre le jeu de mots


"Laurent Jordi (www.ezlogic.mc)" <inf[o]@ezlogic.mc> a écrit dans le message
de news: #
Salut,

Non pas de commande, cependant il te serait possible de ne rafraichir que
l'élément impacté (é ça déscendence éventuellement) mais pour ce faire, et
comme le disais si bien Richard (Clark) il faut être un artiste... et les
artistes se font rare de nos jours...

:)

"nweus" a écrit dans le message de
news:40f6c66e$0$8815$
Bonjour a tous,
J'affiche des infos a l'aide d'un Treeview.
Comme la bdd est utilisée par plusieurs personnes en meme temps, il est
nécessaire de recharger le treeview pour faire apparaitre les
éventuelles


modifications.
Le pb est que lors du rechargement, j'aimerai que l'arbre apparaisse
dans


le
meme etat d'ouverture qu'avant le raffraichissement, afin que les
utilisateurs ne soient pas obligés de tout rouvrir. Existe t-il une
fonction

permettant de le faire ?
Je pensais sauvegarder en bdd (ou dans une variable), l'état du noeud
grace

aux lignes:
Set NodX = Xtree.SelectedItem
etat = NodX.Expanded
Mais il y a un pb: lorsque je clique sur le '+' d'un noeud, le
SelectedItem

ne pointe pas sur l'item du '+', mais sur le dernier item sélectionné.

Auriez-vous une solution ?

D'avance merci








Avatar
Laurent Jordi \(www.ezlogic.mc\)
Re

En fait il n'existe pas de méthode toute faite. D'autant que cette méthode
dépend de ta capacité à manipuler les objets du modele tree view

Le plus simple (et c'est un secret) est de ne charger que ce que tu
affiches.

Pour obtenir un + de déploiement devant lélément tu ajoutes un seul fils
bidon.

Dans l'évennement de déploiement tu teste si le fils est bidon , s'il l'est
tu le supprime et remplit l'élément à déployere avec les vrais fils.

Dasn ce cas ton arboréscence est beaucoup moin fournie que si tu chageais
l'ensemble des éléments.
Il te sufit de créer un petit système capabel de trasformer l'arbre en uyne
chaine de caractères linéaire et de la re-encoder sous forme d'arbre.

Une fois ces outils préparés. Au début de ta modf tu sauves ton arbre en
l'état. puis tu le recharge en précisant la liste des clefs à recherger à
partir de la base...

Ais-je été + clair ?

@+

LJ

"nweus" a écrit dans le message de
news:40f6d40c$0$8806$
????
moi pas comprendre le jeu de mots


"Laurent Jordi (www.ezlogic.mc)" <inf[o]@ezlogic.mc> a écrit dans le
message

de news: #
Salut,

Non pas de commande, cependant il te serait possible de ne rafraichir
que


l'élément impacté (é ça déscendence éventuellement) mais pour ce faire,
et


comme le disais si bien Richard (Clark) il faut être un artiste... et
les


artistes se font rare de nos jours...

:)

"nweus" a écrit dans le message de
news:40f6c66e$0$8815$
Bonjour a tous,
J'affiche des infos a l'aide d'un Treeview.
Comme la bdd est utilisée par plusieurs personnes en meme temps, il
est



nécessaire de recharger le treeview pour faire apparaitre les
éventuelles


modifications.
Le pb est que lors du rechargement, j'aimerai que l'arbre apparaisse
dans


le
meme etat d'ouverture qu'avant le raffraichissement, afin que les
utilisateurs ne soient pas obligés de tout rouvrir. Existe t-il une
fonction

permettant de le faire ?
Je pensais sauvegarder en bdd (ou dans une variable), l'état du noeud
grace

aux lignes:
Set NodX = Xtree.SelectedItem
etat = NodX.Expanded
Mais il y a un pb: lorsque je clique sur le '+' d'un noeud, le
SelectedItem

ne pointe pas sur l'item du '+', mais sur le dernier item sélectionné.

Auriez-vous une solution ?

D'avance merci












Avatar
nweus
Ah merci !
C'est nettement plus clair !
Bonne idée de ne charger que ce qui est visible. Comme un bourin, je
chargeait tout. Sur ma base de test ca va, je n'ai que 50 elements. Sur la
définitive, j'en aurai plus de 1000.

Merci pour les astuces !


"Laurent Jordi (www.ezlogic.mc)" <inf[o]@ezlogic.mc> a écrit dans le message
de news: #
Re

En fait il n'existe pas de méthode toute faite. D'autant que cette méthode
dépend de ta capacité à manipuler les objets du modele tree view

Le plus simple (et c'est un secret) est de ne charger que ce que tu
affiches.

Pour obtenir un + de déploiement devant lélément tu ajoutes un seul fils
bidon.

Dans l'évennement de déploiement tu teste si le fils est bidon , s'il
l'est

tu le supprime et remplit l'élément à déployere avec les vrais fils.

Dasn ce cas ton arboréscence est beaucoup moin fournie que si tu chageais
l'ensemble des éléments.
Il te sufit de créer un petit système capabel de trasformer l'arbre en
uyne

chaine de caractères linéaire et de la re-encoder sous forme d'arbre.

Une fois ces outils préparés. Au début de ta modf tu sauves ton arbre en
l'état. puis tu le recharge en précisant la liste des clefs à recherger à
partir de la base...

Ais-je été + clair ?

@+

LJ

"nweus" a écrit dans le message de
news:40f6d40c$0$8806$
????
moi pas comprendre le jeu de mots


"Laurent Jordi (www.ezlogic.mc)" <inf[o]@ezlogic.mc> a écrit dans le
message

de news: #
Salut,

Non pas de commande, cependant il te serait possible de ne rafraichir
que


l'élément impacté (é ça déscendence éventuellement) mais pour ce
faire,



et
comme le disais si bien Richard (Clark) il faut être un artiste... et
les


artistes se font rare de nos jours...

:)

"nweus" a écrit dans le message de
news:40f6c66e$0$8815$
Bonjour a tous,
J'affiche des infos a l'aide d'un Treeview.
Comme la bdd est utilisée par plusieurs personnes en meme temps, il
est



nécessaire de recharger le treeview pour faire apparaitre les
éventuelles


modifications.
Le pb est que lors du rechargement, j'aimerai que l'arbre apparaisse
dans


le
meme etat d'ouverture qu'avant le raffraichissement, afin que les
utilisateurs ne soient pas obligés de tout rouvrir. Existe t-il une
fonction

permettant de le faire ?
Je pensais sauvegarder en bdd (ou dans une variable), l'état du
noeud




grace
aux lignes:
Set NodX = Xtree.SelectedItem
etat = NodX.Expanded
Mais il y a un pb: lorsque je clique sur le '+' d'un noeud, le
SelectedItem

ne pointe pas sur l'item du '+', mais sur le dernier item
sélectionné.





Auriez-vous une solution ?

D'avance merci