Bonjour,
Je connait le principe de fonctionnment de l'échange de données entre 2 listbox au moyen de deux flêches.
J'ai fait un petit exemple avec un updatepanel :
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
23
24
25
26
27 <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:ListBox ID="ListBox1" runat="server" SelectionMode="Multiple" > <asp:ListItem Text="val1" Value="val1"></asp:ListItem> <asp:ListItem Text="val2" Value="val2"></asp:ListItem> <asp:ListItem Text="val3" Value="val3"></asp:ListItem> <asp:ListItem Text="val4" Value="val4"></asp:ListItem> </asp:ListBox> </ContentTemplate> <Triggers><asp:AsyncPostBackTrigger ControlID="TransfertGauche"/></Triggers> <Triggers><asp:AsyncPostBackTrigger ControlID="TransfertDroit"/></Triggers> </asp:UpdatePanel> <asp:ImageButton ID="TransfertGauche" runat="server" ImageUrl="/Images_Projet/Images/TransfertGauche.png" width="20" height="20" onclick="TransfertGauche_Click" /> <br /><br /> <asp:ImageButton ID="TransfertDroit" runat="server" ImageUrl="/Images_Projet/Images/TransfertDroit.png" width="20" height="20" onclick="TransfertDroit_Click" /> <asp:UpdatePanel ID="UpdatePanel2" runat="server"> <ContentTemplate> <asp:ListBox ID="ListBox2" runat="server" SelectionMode="Multiple" ></asp:ListBox> </ContentTemplate> <Triggers><asp:AsyncPostBackTrigger ControlID="TransfertGauche"/></Triggers> <Triggers><asp:AsyncPostBackTrigger ControlID="TransfertDroit"/></Triggers> </asp:UpdatePanel>Ce principe marche bien pour les listbox.
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 protected void TransfertGauche_Click(object sender, ImageClickEventArgs e) { if (!ListBox2.GetSelectedIndices().Length.Equals(0)) { ListBox1.Items.Add(ListBox2.SelectedItem); ListBox2.Items.Remove(ListBox2.SelectedItem); } } protected void TransfertDroit_Click(object sender, ImageClickEventArgs e) { if (!ListBox1.GetSelectedIndices().Length.Equals(0)) { ListBox2.Items.Add(ListBox1.SelectedItem); ListBox1.Items.Remove(ListBox1.SelectedItem); } }
Maintenant, je voudrais réaliser la même chose en remplacant les deux listbox par deux treeview.
Mes treeview sont définis comme cela :
J'ai commencé à remplir mes fonctions de passage :
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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 <asp:UpdatePanel ID="UpdatePanel5" runat="server"> <ContentTemplate> <asp:TreeView ID="ToutesReferencesNominatives" runat="server" ImageSet="Simple" NodeIndent="10"> <ParentNodeStyle Font-Bold="False" /> <HoverNodeStyle Font-Underline="True" ForeColor="#DD5555" /> <SelectedNodeStyle Font-Underline="True" ForeColor="#DD5555" HorizontalPadding="0px" VerticalPadding="0px" /> <NodeStyle Font-Names="Verdana" Font-Size="8pt" ForeColor="Black" HorizontalPadding="0px" NodeSpacing="0px" VerticalPadding="0px" /> <Nodes > <asp:TreeNode Text="Références nominatives" NavigateUrl="" Expanded="False"> <asp:TreeNode Text="ISO 14001 - Normes environnementales" NavigateUrl="" Expanded="False" > <asp:TreeNode Text="ISO 14001 - 4.1 - Exigences générales" Value="ISO 14001 - 4.1 - Exigences générales"></asp:TreeNode> <asp:TreeNode Text="ISO 14001 - 4.2 - Politique environnementale" Value="ISO 14001 - 4.2 - Politique environnementale"></asp:TreeNode> <asp:TreeNode Text="ISO 14001 - 4.3 - Planification " Value="ISO 14001 - 4.3 - Planification " Expanded="False"> ... </asp:TreeNode> </asp:TreeNode> </Nodes> </asp:TreeView> </ContentTemplate> </asp:UpdatePanel> <asp:ImageButton ID="TransfertGauche" runat="server" ImageUrl="/Images_Projet/Images/TransfertGauche.png" width="20" height="20" onclick="TransfertGauche_Click1" /> <br /><br /> <asp:ImageButton ID="TransfertDroit" runat="server" ImageUrl="/Images_Projet/Images/TransfertDroit.png" width="20" height="20" onclick="TransfertDroit_Click1" <asp:UpdatePanel ID="UpdatePanel6" runat="server"> <ContentTemplate> <asp:TreeView ID="MesReferencesNominatives" runat="server" ImageSet="Simple" NodeIndent="10" > </asp:TreeView> </ContentTemplate> <Triggers><asp:AsyncPostBackTrigger ControlID="TransfertGauche"/></Triggers> <Triggers><asp:AsyncPostBackTrigger ControlID="TransfertDroit"/></Triggers> </asp:UpdatePanel>
Par contre, à partir de là, je rencontre quelques interrogations :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 protected void TransfertGauche_Click1(object sender, ImageClickEventArgs e) { ToutesReferencesNominatives.Nodes.Add(MesReferencesNominatives.SelectedNode); MesReferencesNominatives.Nodes.Remove(MesReferencesNominatives.SelectedNode); } protected void TransfertDroit_Click1(object sender, ImageClickEventArgs e) { MesReferencesNominatives.Nodes.Add(ToutesReferencesNominatives.SelectedNode); ToutesReferencesNominatives.Nodes.Remove(ToutesReferencesNominatives.SelectedNode); }
-Est-il possible de rendre sélectionnable les éléments du treeview comme c'est possible dans une listbox et si oui comment ?
-Comment déterminer le nombre d'éléments sélectionnés ?
Est-ce que quelqu'un saurait m'éclairer sur le sujet ?
Merci.
Partager