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; }
    }

}

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
    }

}

1.B.3,

1.C,下载地址返回顶部
作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
时间: 2024-07-29 16:13:14

cs-SelectTree-DropTreeNode, SelectTreeList的相关文章

CS文件类头注释

1.修改unity生成CS文件的模板(模板位置:Unity\Editor\Data\Resources\ScriptTemplates 文件名:81-C# Script-NewBehaviourScript.cs) 本人将模板修改为如下图(红框内的内容) 备注:在"#"之间的为可替换的参数 2.修改模板可替换参数,在工程项目Asset文件夹在创建Editor文件 在文件夹下添加AddFileHeadComment.cs文件 内容如下 参数内容根据个人需求修改

CS 和 BS 的区别和优缺点

bs是浏览器(browser)和服务器(server) cs是静态客户端程序(client)和服务器(server) 区别在于,虽然同样是通过一个程序连接到服务器进行网络通讯,但是bs结构的,客户端运行在浏览器里,比如你看百度,就是通过浏览器.还有一些bs结构的应用,比如中国电信,以及一些电子商务平台.用bs结构的好处是,不必专门开发一个客户端界面,可用asp,php,jsp等比较快速开发web应用的程序开发. cs结构的,要做一个客户端.网络游戏基本上大多是cs结构,比如你玩传奇,要专门开个传

微软SQLHelper.cs类 中文版

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Xml; using System.Collections; namespace LiuYanBanT { public class SqlHelper

AssemblyInfo.cs文件详解

一.前言 .net工程的Properties文件夹下自动生成一个名为AssemblyInfo.cs的文件,一般情况下我们很少直接改动该文件.但我们实际上通过另一个形式操作该文件.那就是通过在鼠标右键点击项目的属性进入“应用程序”->“程序集信息”,然后修改信息. 二.作用 通过特性(Attribute)来设置程序集(dll文件)的常规信息,供查看或作为配置信息供程序内部使用. 三.详解 // 程序集标题 [assembly:AssemblyTitle("程序集标题")] // 程

全局程序集GlobalAssemblyInfo.cs进行版本控制(引)

原文出自:http://blog.csdn.net/oyi319/article/details/5753311 1.全局程序集GlobalAssemblyInfo.cs 我们编写的一个解决方案,通常会包含多个项目,而每个项目都有单独的程序集信息AssemblyInfo.cs.但是,你会发现一个问题,这些AssemblyInfo.cs当中有一部分在重复的,若能把它们提取出来放入一个单一文件中,修改AssemblyInfo中的诸如产品名.产品版本.版本等信息会变得轻松.那么,这个程序集信息文件,我

【141030】CS结构的VC++远程控制程序源代码

CS结构的VC++远程控制程序源代码,类似于pcAnywhere的程序,程序分为主服务端和主控端.主控端也就是客户端,由用户发送指令到服务端后来控制受控计算机.因为服务端是安装在受控机上的,其程序原理与著名的远程控制软件PcAnywhere非常相似,只是只完成了基本功能,有兴趣的可自己扩展程序吧. 客户端: 服务端: 完整源码下载地址:点击下载

《CS:APP》 chapter 6 The Memory Hierarchy笔记

The Memory Hierarchy 6.1 Storage Technologies The earliest IBM PCs didn't even have a hard disk. 让我惊奇的是早期的IBM直接没有硬盘... 6.1.1 Random-Access Memory Random-access memory(RAM) comes in two varieties- static anddynamic . Static RAM (SRAM) is faster and si

CS游戏2--三次杀人机会,警察不能杀人

#coding=utf-8 import randomimport time ''' 本文章主要目主要有三个,1,随机增加5个系统人物,所有的都是随机产生的,2,人物角色如果是警察,则不能杀死警察,3,有三次机会杀死敌方 涉及的知识点有,随机数的产生,字典的存储和遍历 ''' list_kill=[0,1,1,1]list_name=range(10)dir_weapen={"AK47":2000,"匕首":500,"小手枪":1000}dir_

Atitit 软件架构方法的进化与演进cs bs soa roa &#160;msa&#160; attilax总结

Atitit 软件架构方法的进化与演进cs bs soa roa  msa  attilax总结 1.1. 软件体系架构是沿着单机到 CS 架构,再到 BS 的三层架构甚至多层架构逐步发展过来的,关于多层架构 1 1.2. 主进化路线Cs>> bs >>  SOA>>MSA(微服务架构1 1.3. 1 1.4. 面向资源体系架构(ROA)1 1.4.1. 管道和过滤器风格(数据流风格)2 1.5. 数据抽象与面向对象风格(调用/返回风格)2 1.6. 基于事件的隐式调用