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 > )
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/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |