/// <summary>
        /// 设置TreeNode的属性
        /// </summary>
        /// <param name="node">TreeNode</param>
        /// <param name="materialNode">MaterialTreeNode</param>
        private void InitNode(DeluxeTreeNode node, MaterialTreeNode materialNode)
        {
            node.ToolTip          = "点击打开文件";
            node.Expanded         = true;
            node.SelectedCssClass = " ";
            node.Html             = string.Format("[{0}]<a href=\"{1}?requestType=download&rootPathName={2}&controlID={3}&fileName={4}&pathType={5}&filePath={6}&fileReadonly=true&userID={7}\" target=\"_blank\" >{8}</a>",
                                                  (materialNode.Material.Department != null) ? materialNode.Material.Department.DisplayName : string.Empty,
                                                  this.CurrentPageUrl,
                                                  WebUtility.GetRequestQueryValue("rootPathName", string.Empty),
                                                  WebUtility.GetRequestQueryValue("controlID", string.Empty),
                                                  materialNode.Material.OriginalName,
                                                  Convert.ToInt16(PathType.relative),
                                                  HttpUtility.UrlEncode(materialNode.Material.RelativeFilePath),
                                                  this.userID,
                                                  HttpUtility.HtmlEncode(materialNode.Material.Title));

            if (!string.IsNullOrEmpty(materialNode.Material.RelativeFilePath))
            {
                string fileName = Path.GetFileName(materialNode.Material.RelativeFilePath);

                string fileIconPath = FileConfigHelper.GetFileIconPath(fileName);

                if (fileIconPath != string.Empty)
                {
                    node.NodeCloseImg = fileIconPath;
                    node.NodeOpenImg  = fileIconPath;
                }
            }
        }
        /// <summary>
        /// 初始化某个节点
        /// </summary>
        /// <param name="node">节点</param>
        /// <param name="childNodes">子节点</param>
        private DeluxeTreeNode GenerateDeluxeTreeNode(MaterialTreeNode materialNode)
        {
            DeluxeTreeNode rootNode = new DeluxeTreeNode(materialNode.Material.Title, materialNode.Material.ID);

            this.InitNode(rootNode, materialNode);

            foreach (MaterialTreeNode node in materialNode.Children)
            {
                rootNode.Nodes.Add(GenerateDeluxeTreeNode(node));
            }

            return(rootNode);
        }
        private void InitTree()
        {
            string materialID = HttpUtility.UrlEncode(WebUtility.GetRequestQueryValue <string>("materialID", string.Empty));

            if (materialID != string.Empty)
            {
                MaterialTreeNode rootNode = MaterialAdapter.Instance.LoadMaterialVersionsByMaterialID(materialID);

                if (rootNode == null)
                {
                    return;
                }

                DeluxeTreeNode deluxeTreeNode = this.GenerateDeluxeTreeNode(rootNode);

                if (deluxeTreeNode != null)
                {
                    this.treeControl.Visible = true;
                    this.treeControl.Nodes.Add(deluxeTreeNode);
                }
            }
        }
        /// <summary>
        ///由MaterialList形成以主版本为跟节点各版本为子节点的树
        /// </summary>
        /// <param name="materials">包含主版本和其他版本的集合</param>
        /// <param name="mainMaterialID">重版本ID</param>
        /// <returns>形成的树</returns>
        private MaterialTreeNode GenerateMaterialVersionTree(MaterialList materials, string mainMaterialID)
        {
            MaterialTreeNode rootNode = null;
            MaterialTreeNodeCollection materialTreeNodeCollection = new MaterialTreeNodeCollection();

            foreach (Material m in materials)
            {
                if (string.Compare(m.ID, mainMaterialID, true) == 0)
                    rootNode = new MaterialTreeNode(m);
                else if (m.ParentID == mainMaterialID)
                {
                    MaterialTreeNode node = GenerateMaterialVersionTree(materials, m.ID);
                    if (node != null)
                        materialTreeNodeCollection.Add(node);
                }
            }

            if (rootNode != null)
            {
                foreach (MaterialTreeNode node in materialTreeNodeCollection)
                {
                    rootNode.Children.Add(node);
                }
            }

            return rootNode;
        }