OVH Cloud OVH Cloud

Treeview

2 réponses
Avatar
Fr
Bonjour,

J'utilise un control Treeview alimenter par un fichier XML.
Je souhaite utilisé ce Treeview pour permettre aux utilisateurs de faire des
selection de valeur.
Je fais apparaitre des checkbox à chaque noeud, puis je recupérer après un
clic sur un bouton de validation les valeur coché.
Jusque là pas de pb....

Mais j'aimerais que quand un utilisateur clic sur un noeud parents, toutes
les checkbox enfants soient cochée :
- Est-ce possible du coté client, sans avoir à faire un aller retour vers le
serveur ?
- Si ce n'est pas possible coté client, comment faire pour déclenché une
action sur un clic sur un noeud (je n'ai pas trouvé). Auquel cas je
parcourerais l'arbre afin de mettre les checkbox à true

Merci d'avance

Fr@ncky

2 réponses

Avatar
Zoury
Salut !

Essai comme ceci (le code n'est pas testé) :
'***
Protected Sub TreeView1_TreeNodeCheckChanged(ByVal sender As Object, Byval e
As TreeNodeEventArgs) Handles TreeView1.TreeNodeCheckChanged

CheckChildNodesRecursively(e.Node, e.Node.Checked)

End Sub

Private Sub CheckChildNodesRecursively(ByVal node As TreeNode, ByVal checked
As Boolean)

node.Checked = checked
For Each childNode As TreeNode In e.ChildNodes
CheckChildNodesRecursively(childNode, checked)
Next

End Sub
'***

--
Cordialement
Yanick
MVP pour Visual Basic
"" a écrit dans le message de news:

je viens de trouver ça sur la toile :
http://forums.asp.net/1013158/ShowPost.aspx

Quelqu'un pourrai-t'il traduire en VB cette partie SVP ? Merci d'avance.
protected void TreeView1_TreeNodeCheckChanged(object sender,
TreeNodeEventArgs e)
{
foo(e.Node, e.Node.Checked);
}
private void foo(TreeNode e, bool check)
{
e.Checked = check;
foreach (TreeNode t in e.ChildNodes)
{
foo(t, check);
}
}


"" a écrit dans le message de news:

Bonjour,

J'utilise un control Treeview alimenter par un fichier XML.
Je souhaite utilisé ce Treeview pour permettre aux utilisateurs de faire
des
selection de valeur.
Je fais apparaitre des checkbox à chaque noeud, puis je recupérer après un
clic sur un bouton de validation les valeur coché.
Jusque là pas de pb....

Mais j'aimerais que quand un utilisateur clic sur un noeud parents, toutes
les checkbox enfants soient cochée :
- Est-ce possible du coté client, sans avoir à faire un aller retour vers
le
serveur ?
- Si ce n'est pas possible coté client, comment faire pour déclenché une
action sur un clic sur un noeud (je n'ai pas trouvé). Auquel cas je
parcourerais l'arbre afin de mettre les checkbox à true

Merci d'avance






Avatar
Fr
Merci beaucoup !
Ca marche parfaitement bien.

N'y a -il pas une méthode plus propre, sans faire de postback, du coté
client ?


"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news: Od5j%
Salut !

Essai comme ceci (le code n'est pas testé) :
'***
Protected Sub TreeView1_TreeNodeCheckChanged(ByVal sender As Object, Byval
e As TreeNodeEventArgs) Handles TreeView1.TreeNodeCheckChanged

CheckChildNodesRecursively(e.Node, e.Node.Checked)

End Sub

Private Sub CheckChildNodesRecursively(ByVal node As TreeNode, ByVal
checked As Boolean)

node.Checked = checked
For Each childNode As TreeNode In e.ChildNodes
CheckChildNodesRecursively(childNode, checked)
Next

End Sub
'***

--
Cordialement
Yanick
MVP pour Visual Basic
"" a écrit dans le message de news:

je viens de trouver ça sur la toile :
http://forums.asp.net/1013158/ShowPost.aspx

Quelqu'un pourrai-t'il traduire en VB cette partie SVP ? Merci d'avance.
protected void TreeView1_TreeNodeCheckChanged(object sender,
TreeNodeEventArgs e)
{
foo(e.Node, e.Node.Checked);
}
private void foo(TreeNode e, bool check)
{
e.Checked = check;
foreach (TreeNode t in e.ChildNodes)
{
foo(t, check);
}
}


"" a écrit dans le message de news:

Bonjour,

J'utilise un control Treeview alimenter par un fichier XML.
Je souhaite utilisé ce Treeview pour permettre aux utilisateurs de faire
des
selection de valeur.
Je fais apparaitre des checkbox à chaque noeud, puis je recupérer après
un
clic sur un bouton de validation les valeur coché.
Jusque là pas de pb....

Mais j'aimerais que quand un utilisateur clic sur un noeud parents,
toutes
les checkbox enfants soient cochée :
- Est-ce possible du coté client, sans avoir à faire un aller retour vers
le
serveur ?
- Si ce n'est pas possible coté client, comment faire pour déclenché une
action sur un clic sur un noeud (je n'ai pas trouvé). Auquel cas je
parcourerais l'arbre afin de mettre les checkbox à true

Merci d'avance