Bonjour à tous
j'ai un treeview:
Pays
P1
P2
Commune
C1
C2
comment je peux désactiver les liens (P1 et C1) de mon arbre
Merci
Bonjour à tous
j'ai un treeview:
Pays
P1
P2
Commune
C1
C2
comment je peux désactiver les liens (P1 et C1) de mon arbre
Merci
En utilisant le gestionnaire d’événement TreeNodeDataBound qui sera appelé a chaque fois qu'il ait eu une liaison de données avec un nœud.
a+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 //Ceci est appelé pour chaque nud. protected void TreeView1_TreeNodeDataBound(object sender, TreeNodeEventArgs e) { switch (e.Node.Text) { case "P1": case "C1": e.Node.SelectAction = TreeNodeSelectAction.None; break; } }
Merci voici mon code mais ça ne marche pas:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Protected Sub TreeView1_TreeNodeDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.TreeNodeEventArgs) Handles TreeView1.TreeNodeDataBound Select Case (e.Node.Text) Case "Ajouter groupe" e.Node.SelectAction = TreeNodeSelectAction.None End Select End Sub
Ok ça ne marche pas mais donne nous un peu plus de détails. Est ce qu'il n’exécute pas le code? As-tu une erreur? Pour peupler ton TreeView, tu as fais comment?
a+
Merci beaucoup pou votre réponse:
moi j'ai une treeview avec des noeud
(le treeview n'esdt pas rempli à partir d'une base de données):
j'ai une variable et selon sa valeur je veux activer/désactiver le lien de quelques noeuds
s'il n'est pas possible de désactiver le lien est ce qu'on peux supprimer le noeud dans ce cas là?
Merci
Merci
voici le code de mon treeview
selon une variable je veux désactiver le lien ajouter groupe?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <asp:TreeView ID="TreeView2" runat="server" Height="440px" ImageSet="Arrows" Style="border-left-color: #66ccff; left: 332px; border-bottom-color: #66ccff; border-top-color: #66ccff; position: absolute; top: 486px; border-right-color: #66ccff;" Font-Names="Calibri" Font-Size="Smaller" Font-Bold="False" Font-Overline="False" Font-Strikeout="False" Width="264px"> <ParentNodeStyle Font-Bold="False" /> <HoverNodeStyle Font-Underline="True" ForeColor="#5555DD" Font-Bold="True" Font-Italic="True" /> <SelectedNodeStyle Font-Underline="True" ForeColor="#5555DD" HorizontalPadding="0px" VerticalPadding="0px" /> <Nodes> <asp:TreeNode Text="Groupe" Value="0"> <asp:TreeNode Text="Ajouter groupe" Value="12"></asp:TreeNode> <asp:TreeNode Text="Modifier groupe" Value="13"></asp:TreeNode> <asp:TreeNode Text="Supprimer grouper" Value="15"></asp:TreeNode> <asp:TreeNode Text="Voir les groupes" Value="300"></asp:TreeNode> </asp:TreeNode> <asp:TreeNode Text="Déconnexion" Value="100"></asp:TreeNode> </Nodes> <RootNodeStyle Font-Bold="True" /> <NodeStyle Font-Names="Calibri" Font-Size="12pt" ForeColor="Black" HorizontalPadding="5px" NodeSpacing="0px" VerticalPadding="0px" /> </asp:TreeView>
Dans ton cas, même si je ne suis pas totalement d'accord avec la manière dont tu rempli ton TreeView, il faudra parcourir le treeview et vérifier si chaque nœud correspond à l’élément rechercher. Une fois trouvé, le nœud pourrait être désactivé/activé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 //Effectue une recherche d'un nud dans une collection des nuds données. //Une fois trouvé le désactive/active selon la valeur du variable isEnable. //Renvoie 1 si l'element recherché a été trouvé sinon 0 protected int SetChildrenNodeState(string searchValue, bool isEnable, TreeNodeCollection node) { foreach (TreeNode nd in node) { if (nd.Text.Equals(searchValue)) { nd.SelectAction = isEnable ? TreeNodeSelectAction.Select : TreeNodeSelectAction.None; return 1; } if (nd.ChildNodes.Count > 0) { SetChildrenNodeState(searchValue, isEnable, nd.ChildNodes); } } return 0; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 //La recherche se fait uniquement pour les nuds parents qui ont des //enfants. //Parcourt récursive. // protected void SetNodeState(string searchValue, bool isEnable) { int i = 0; foreach (TreeNode node in TreeView2.Nodes) { if (node.ChildNodes.Count > 0) { i = SetChildrenNodeState(searchValue, isEnable, node.ChildNodes); if (i == 1) break;// si élément trouvé, arrêter la recherche. } } }Voilà, j’espère t'avoir aidé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 //Exemple d'utilisation string searchValue = "Modifier groupe"; SetNodeState(searchValue, false);
Merci beaucoup
Partager