zoukankan      html  css  js  c++  java
  • cs-SelectTree-DropTreeNode, SelectTreeList

    ylbtech-Unitity: cs-SelectTree-DropTreeNode, SelectTreeList

     DropTreeNode.cs SelectTreeList.cs

    1.A,效果图返回顶部
     
    1.B,源代码返回顶部
    1.B.1,DropTreeNode.cs
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Healthcare.Framework.Web.Mvc
    {
        public class DropTreeNode
        {
            public string RootValue { get; set; }
            public string TreeNodeID { get; set; }
            public string Text { get; set; }
            public string Value { get; set; }
            public string ParentTreeNodeID { get; set; }
    
            public string Css { get; set; }
        }
    
    }
    View Code

    1.B.2,SelectTreeList.cs

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Linq;
    using System.Reflection;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Healthcare.Framework.Web.Mvc
    {
        /// <summary>
        /// 树形下拉框
        /// </summary>
        public class SelectTreeList
        {
            #region 字段
    
            List<DropTreeNode> treeNodes = new List<DropTreeNode>();
            string rootValue = null;
            string valueField = null;
            string textField = null;
            string nodeField = null;
            string parentField = null;
    
            string css = null;
    
            string selectValue = "";
    
            bool isFinalLevel = false;
    
            public bool IsFinalLevel
            {
                get { return isFinalLevel; }
                set { isFinalLevel = value; }
            }
    
            public string SelectValue
            {
                get { return selectValue; }
                set { selectValue = value; }
            }
    
            #endregion
    
            #region 构造函数
    
            /// <summary>
            /// 构造函数
            /// </summary>
            /// <param name="items">项集合</param>
            /// <param name="rootValue">根元素字段</param>
            /// <param name="textField">显示文本字段</param>
            /// <param name="nodeField">节点字段</param>
            /// <param name="parentField">父节点字段</param>
            public SelectTreeList(IEnumerable items, string rootValue, string textField, string nodeField, string parentField)
            {
                this.rootValue = rootValue;
                this.valueField = nodeField;
                this.textField = textField;
                this.nodeField = nodeField;
                this.parentField = parentField;
                Validate();
                Init(items);
            }
    
            /// <summary>
            /// 构造函数
            /// </summary>
            /// <param name="items">项集合</param>
            /// <param name="rootValue">根元素字段</param>
            /// <param name="valueField">获取值字段</param>
            /// <param name="textField">显示文本字段</param>
            /// <param name="nodeField">节点字段</param>
            /// <param name="parentField">父节点字段</param>
            public SelectTreeList(IEnumerable items, string rootValue, string textField, string nodeField, string parentField, string valueField, string selectValue, bool isFinalLevel = false, string Css="")
            {
                this.rootValue = rootValue;
                this.valueField = valueField;
                this.textField = textField;
                this.nodeField = nodeField;
                this.parentField = parentField;
                this.selectValue = selectValue;
                this.isFinalLevel = isFinalLevel;
                this.css = Css;
    
                Validate();
                Init(items);
            }
    
            #endregion
    
            /// <summary>
            /// 验证各个参数的有效性
            /// </summary>
            public void Validate()
            {
                StringBuilder sb = new StringBuilder();
                if (string.IsNullOrEmpty(valueField))
                    sb.AppendLine("获取值字段不能为空");
                if (string.IsNullOrEmpty(textField))
                    sb.AppendLine("显示文本字段不能为空");
                if (string.IsNullOrEmpty(nodeField))
                    sb.AppendLine("节点字段不能为空");
                if (string.IsNullOrEmpty(parentField))
                    sb.AppendLine("父节点字段字段不能为空");
                if (sb.Length > 0)
                    throw new Exception("验证错误:" + sb.ToString());
            }
    
            /// <summary>
            /// 初始化TreeNodes集合
            /// </summary>
            /// <param name="items"></param>
            public void Init(IEnumerable items)
            {
                foreach (var item in items)
                {
                    DropTreeNode treeNode = new DropTreeNode();
                    Type type = item.GetType();
    
                    PropertyInfo property = type.GetProperty(this.valueField);
                    object o = property.GetValue(item, null);
                    treeNode.Value = o.ToString();
    
                    property = type.GetProperty(this.textField);
                    o = property.GetValue(item, null);
                    treeNode.Text = o.ToString();
    
                    property = type.GetProperty(this.nodeField);
                    o = property.GetValue(item, null);
                    treeNode.TreeNodeID = o.ToString();
    
                    property = type.GetProperty(this.parentField);
                    o = property.GetValue(item, null);
                    treeNode.ParentTreeNodeID = o.ToString();
    
                    if (!string.IsNullOrEmpty(this.css))
                    {
                        property = type.GetProperty(this.css);
                        o = property.GetValue(item, null);
                        treeNode.Css = o.ToString();
                    }
                    else
                        treeNode.Css = "";
    
                    treeNodes.Add(treeNode);
                }
            }
    
            #region 字段属性
    
            public List<DropTreeNode> TreeNodes
            {
                get { return treeNodes; }
                set { treeNodes = value; }
            }
    
            public string RootValue
            {
                get { return rootValue; }
                set { rootValue = value; }
            }
    
            public string ValueField
            {
                get { return valueField; }
                set { valueField = value; }
            }
    
            public string TextField
            {
                get { return textField; }
                set { textField = value; }
            }
    
            public string NodeField
            {
                get { return nodeField; }
                set { nodeField = value; }
            }
    
            public string ParentField
            {
                get { return parentField; }
                set { parentField = value; }
            }
    
            #endregion
        }
    
    }
    View Code

    1.B.3,

    1.C,下载地址返回顶部

     

    warn 作者:ylbtech
    出处:http://ylbtech.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    php面试专题---16、MySQL创建高性能索引考点
    php面试专题---Mysql索引类型、介绍及优点
    php面试专题---Mysql索引原理及SQL优化
    北风设计模式课程---责任链模式 总结
    黑马lavarel教程---2、获取用户输入
    php面试专题---15、MySQL数据库基础考察点
    北风设计模式课程---外观模式、代理模式和中介者模式的区别
    legend3---1、meedu安装
    mysql中utf8和utf8mb4区别
    Struts2基于注解的Action配置
  • 原文地址:https://www.cnblogs.com/ylbtech/p/4079381.html
Copyright © 2011-2022 走看看