FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 2005|回复: 0
打印 上一主题 下一主题

给Tree控件加获取选定(指定)节点的所有子节点功能

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-11 12:35:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前几天写一个小系统的时候需要一个功能:选中部门模拟树列表的时候在右侧显示该部门(含该部门的所有子孙部门)的所有人员,查了源码发现好像不直接提供这个功能,只好自己添加了,自己水平也不高,找了半天感觉还是在“ExtAspNet\WebControls\PanelBase.CollapsablePanel.Tree\TreeNode\TreeNode.cs”添加比较合适,在该文件最后添加如下代码:为了使名称出现在Nodes下面只好取了”NodesIdAllChild“这个名字
       #region GetAllChildNodes

        [Category(CategoryName.OPTIONS)]
        [Description("获取节点的所有子节点")]
        [TypeConverter(typeof(StringArrayConverter))]
        public TreeNode[] NodesAllChild
        {
            get
            {
                return GetAllChildNodes(this);
            }
        }

        private ExtAspNet.TreeNode[] GetAllChildNodes(ExtAspNet.TreeNode node)
        {
            List<ExtAspNet.TreeNode> ltNode = new List<ExtAspNet.TreeNode>();
            if (node.Nodes.Count > 0)
            {
                foreach (ExtAspNet.TreeNode subNode in node.Nodes)
                {
                    ltNode.Add(subNode);
                    ltNode.AddRange(GetAllChildNodes(subNode));
                }
            }
            return ltNode.ToArray();
        }

        [Category(CategoryName.OPTIONS)]
        [Description("获取节点的所有子节点(含自身节点)")]
        [TypeConverter(typeof(StringArrayConverter))]
        public string[] NodesIdAllChild
        {
            get
            {
                List<string> s = new List<string>();

                s.Add(this.NodeID);

                foreach (TreeNode tn in NodesAllChild)
                {
                    s.Add(tn.NodeID);
                }

                return s.ToArray();
            }
        }

        #endregion



使用的时候直接用”treeDept.SelectedNode.NodesIdAllChild“,返回的是选中节点以及其所有子孙节点的NodeID字符串数组,添加的这个功能暂时不知道会不会出现其他问题,至少我用了还没出现什么问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-5-14 06:39 , Processed in 0.054536 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表