J'ai mis la propriété PopulateOnDemand = true
Etant donné que je remplis le noeud dynamiquement.
Seulement l'évènement associé à cette propriété (TreeNodePopulate) n'est pas appellé.
Pourtant ça semble être correct puisque le lien qui est crée sur un noeud dynamique est
javascript:TreeView_PopulateNode(Ctl_tvFTP_Data,1,Ctl_tvFTPn1,Ctl_tvFTPt1,Ctl_tvFTPt1i,' ','toto','IP\\toto','f','','tf')
Je m'abonne à l'évènement dans le PreRender de ma page
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
| this.tvFTP.TreeNodePopulate += new TreeNodeEventHandler(tvFTP_TreeNodePopulate);
TreeNode tnRoot = new TreeNode(this.Eqnum, this.Eqnum);
tnRoot.SelectAction = TreeNodeSelectAction.Expand;
#region Add Directory
foreach (FTPDirectory directory in rootDirectory.SousRepertoires)
{
TreeNode tnChildFolder = new TreeNode(directory.DirectoryName, directory.DirectoryName);
tnChildFolder.SelectAction = TreeNodeSelectAction.Expand;
tnChildFolder.PopulateOnDemand = true;
tnRoot.ChildNodes.Add(tnChildFolder);
}
#endregion
#region Add Files
foreach (FTPFile file in rootDirectory.Fichiers)
{
TreeNode tnChildFile = new TreeNode(file.FileName, file.FileName);
tnChildFile.SelectAction = TreeNodeSelectAction.None;
tnRoot.ChildNodes.Add(tnChildFile);
}
#endregion
this.tvFTP.Nodes.Clear();
this.tvFTP.Nodes.Add(tnRoot); |
Seul la propriété PopulateOnDemand est à true pour les noeuds de type répertoire.
Les noeuds enfants seront crées lorsque une personne "développe" le noeud parent
J'ai déjà utilisé le TreeView dans les WinForm, et je peux vous garantir qu'il y a une réelle différence avec les WebForm
Partager