树后台数据存储(採用webmethod)
树后台数据存储
关于后台数据存储将集中在此篇解说
/*
*作者:方浩然
*日期:2015-05-26
*版本号:1.0
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BF.IBLL.MedicalTreatmentCombination;
using Base.Core.UnityFactory;
using System.Collections;
using BF.Model;
using LitJson;
using System.Web.Services;
using System.Linq.Expressions; namespace BF.Web.pages.MedicalTreatmentCombination
{
public partial class ZtreeForm : BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
}
private static readonly Isys_OrganizeBLL iORGBLL = IOCFactory.GetIOCResolve<Isys_OrganizeBLL>();
private static readonly string iconOpen = HttpUtility.UrlEncode(@"zTree-zTree_v3-master/zTree_v3/css/zTreeStyle/img/diy/1_open.png");
private static readonly string iconClose = HttpUtility.UrlEncode(@"zTree-zTree_v3-master/zTree_v3/css/zTreeStyle/img/diy/1_close.png"); /// <summary>
/// 节点类
/// </summary>
public class Node
{
/// <summary>
/// 子节点
/// </summary>
public List<Node> children;
/// <summary>
/// 展开图标
/// </summary>
public string iconOpen;
/// <summary>
/// 收缩图标
/// </summary>
public string iconClose;
/// <summary>
/// 是否是父级节点
/// </summary>
public bool isParent;
/// <summary>
/// 地区gID
/// </summary>
public Guid? gID;
/// <summary>
/// 地区父gPID
/// </summary>
public Guid? gPID;
/// <summary>
/// 地区编码
/// </summary>
public string sAreaCode;
/// <summary>
/// 地区级别
/// </summary>
public int? iJB;
/// <summary>
/// 地区名称
/// </summary>
public string name;
/// <summary>
/// 删除标识
/// </summary>
public int? iDeleteMark;
/// <summary>
/// 创建日期
/// </summary>
public DateTime? dCreateDate;
/// <summary>
/// 创建人编码
/// </summary>
public Guid? gCreateUserId;
/// <summary>
/// 创建人姓名
/// </summary>
public string sCreateUserRealname;
/// <summary>
/// 改动日期
/// </summary>
public DateTime? dModifyDate;
/// <summary>
/// 改动人编码
/// </summary>
public Guid? gModifyUserId;
/// <summary>
/// 改动人姓名
/// </summary>
public string sModifyUserRealname;
} /// <summary>
/// 节点类--【仅供EasyUITree使用:标识id text state checked attributes children】
/// </summary>
public class NodeTree
{
/// <summary>
/// 子节点
/// </summary>
public List<NodeTree> children;
/// <summary>
/// 图标
/// </summary>
public string iconCls;
/// <summary>
/// 是否是父级节点 默觉得'open'. 当为‘closed’时说明此节点下有子节点否则此节点为叶子节点
/// </summary>
public string state;
/// <summary>
/// 地区gID
/// </summary>
public Guid? id;
/// <summary>
/// 地区父gPID
/// </summary>
public Guid? gPID;
/// <summary>
/// 地区编码
/// </summary>
public string sAreaCode;
/// <summary>
/// 地区级别
/// </summary>
public int? iJB;
/// <summary>
/// 地区名称
/// </summary>
public string text;
/// <summary>
/// 删除标识
/// </summary>
public int? iDeleteMark;
/// <summary>
/// 创建日期
/// </summary>
public DateTime? dCreateDate;
/// <summary>
/// 创建人编码
/// </summary>
public Guid? gCreateUserId;
/// <summary>
/// 创建人姓名
/// </summary>
public string sCreateUserRealname;
/// <summary>
/// 改动日期
/// </summary>
public DateTime? dModifyDate;
/// <summary>
/// 改动人编码
/// </summary>
public Guid? gModifyUserId;
/// <summary>
/// 改动人姓名
/// </summary>
public string sModifyUserRealname;
} public class attributes
{ } /// <summary>
/// 读取地区列表【EasyUITree】--青海省民政厅以下一级
/// </summary>
/// <returns></returns>
[WebMethod]
public static string GetEasyUITreeRootList()
{
List<NodeTree> list = new List<NodeTree>();//全部节点
list = GetTreeGenNode();//将全部一级节点放到list中
GetTreeThirdChilds(ref list);
return JsonHelper<NodeTree>.ListToJsonString(list);
} /// <summary>
/// 读取地区列表--青海省民政厅以下一级
/// </summary>
/// <returns></returns>
[WebMethod]
public static string GetZtreeRootList()
{
List<Node> list = new List<Node>();//全部节点
list = GetGenNode();//将全部一级节点放到list中
GetThirdChilds(ref list);
return JsonHelper<Node>.ListToJsonString(list);
} /// <summary>
/// 读取地区列表【EasyUITree】
/// </summary>
/// <returns></returns>
[WebMethod]
public static string GetTreeList()
{
List<NodeTree> list = new List<NodeTree>();//全部节点
list = GetTreeGenNode();//将全部一级节点放到list中
GetTreeChilds(ref list);
return JsonHelper<NodeTree>.ListToJsonString(list);
} /// <summary>
/// 读取地区列表
/// </summary>
/// <returns></returns>
[WebMethod]
public static string GetZtreeList()
{
List<Node> list = new List<Node>();//全部节点
list = GetGenNode();//将全部一级节点放到list中
GetChilds(ref list);
return JsonHelper<Node>.ListToJsonString(list);
} /// <summary>
/// 读取子集节点【EasyUITree】--青海省民政厅以下一级
/// </summary>
/// <param name="list"></param>
[WebMethod]
public static void GetTreeThirdChilds(ref List<NodeTree> list)
{
foreach (NodeTree node in list)
{
List<NodeTree> nodeList = GetTreeThirdChildsID(node.id);
if (nodeList.Count > 0)
{
if (node.iJB <= 0)
node.children = nodeList;
GetTreeThirdChilds(ref nodeList);
}
break;
}
} /// <summary>
/// 读取子集节点--青海省民政厅以下一级
/// </summary>
/// <param name="list"></param>
[WebMethod]
public static void GetThirdChilds(ref List<Node> list)
{
foreach (Node node in list)
{
List<Node> nodeList = GetThirdChildsID(node.gID);
if (nodeList.Count > 0)
{
if (node.iJB <= 0)
node.children = nodeList;
GetThirdChilds(ref nodeList);
}
break;
}
} /// <summary>
/// 获全部的一级节点【EasyUITree】
/// </summary>
/// <param name="nodeList"></param>
/// <returns></returns>
[WebMethod]
public static List<NodeTree> GetTreeGenNode()
{
List<NodeTree> nodeList = new List<NodeTree>();
List<NodeTree> childrenList = new List<NodeTree>();
NodeTree node = new NodeTree();
NodeTree children = new NodeTree();
List<sys_Organize> genList = iORGBLL.GetList(P => P.iJB == -1 && P.iDeleteMark == 0);
if (genList != null && genList.Count > 0)
{
foreach (sys_Organize genItem in genList)
{
//根节点 node
node.id = genItem.gID;
node.gPID = genItem.gPID;
node.sAreaCode = genItem.sAreaCode;
node.iJB = genItem.iJB;
node.text = genItem.sFullName;
node.iDeleteMark = genItem.iDeleteMark;
node.dCreateDate = genItem.dCreateDate;
node.gCreateUserId = genItem.gCreateUserId;
node.sCreateUserRealname = genItem.sCreateUserRealname;
node.dModifyDate = genItem.dModifyDate;
node.gModifyUserId = genItem.gModifyUserId;
node.sModifyUserRealname = genItem.sModifyUserRealname;
if (iORGBLL.GetList(P => P.gPID == genItem.gID && P.iDeleteMark == 0).Count > 0)
{
node.state = "closed";
node.iconCls = iconOpen;
} childrenList.Add(children);
}
if (childrenList.Count > 0)
node.children = childrenList;
nodeList.Add(node);
}
return nodeList;
} /// <summary>
/// 获全部的一级节点
/// </summary>
/// <param name="nodeList"></param>
/// <returns></returns>
[WebMethod]
public static List<Node> GetGenNode()
{
List<Node> nodeList = new List<Node>();
List<Node> childrenList = new List<Node>();
Node node = new Node();
Node children = new Node();
List<sys_Organize> genList = iORGBLL.GetList(P => P.iJB == -1 && P.iDeleteMark == 0);
if (genList != null && genList.Count > 0)
{
foreach (sys_Organize genItem in genList)
{
//根节点 node
node.gID = genItem.gID;
node.gPID = genItem.gPID;
node.sAreaCode = genItem.sAreaCode;
node.iJB = genItem.iJB;
node.name = genItem.sFullName;
node.iDeleteMark = genItem.iDeleteMark;
node.dCreateDate = genItem.dCreateDate;
node.gCreateUserId = genItem.gCreateUserId;
node.sCreateUserRealname = genItem.sCreateUserRealname;
node.dModifyDate = genItem.dModifyDate;
node.gModifyUserId = genItem.gModifyUserId;
node.sModifyUserRealname = genItem.sModifyUserRealname;
if (iORGBLL.GetList(P => P.gPID == genItem.gID && P.iDeleteMark == 0).Count > 0)
{
node.isParent = true;
node.iconOpen = iconOpen;
node.iconClose = iconClose;
} childrenList.Add(children);
}
if (childrenList.Count > 0)
node.children = childrenList;
nodeList.Add(node);
}
return nodeList;
} /// <summary>
/// 将获取的全部的子节点放到list中【EasyUITree】
/// </summary>
/// <param name="list">按引用传值,当控制权传递回调用方法时,在方法中对參数所做的不论什么更改都将反映在该变量中</param>
/// <returns></returns>
[WebMethod]
public static void GetTreeChilds(ref List<NodeTree> list)
{
foreach (NodeTree node in list)
{
List<NodeTree> nodeList = GetTreeThirdChildsID(node.id);
if (nodeList.Count > 0)
{
node.children = nodeList;//载入子节点
//採用递归的形式
GetTreeChilds(ref nodeList);
}
}
} /// <summary>
/// 将获取的全部的子节点放到list中
/// </summary>
/// <param name="list">按引用传值,当控制权传递回调用方法时,在方法中对參数所做的不论什么更改都将反映在该变量中</param>
/// <returns></returns>
[WebMethod]
public static void GetChilds(ref List<Node> list)
{
foreach (Node node in list)
{
List<Node> nodeList = GetChildsID(node.gID);
if (nodeList.Count > 0)
{
node.children = nodeList;//载入子节点
//採用递归的形式
GetChilds(ref nodeList);
}
}
} /// <summary>
/// 依据父节点的id获取子节点
/// </summary>
/// <param name="list">父节点id</param>
/// <returns>异步调用返回List<Node></returns>
[WebMethod]
public static string GetRootByChildsID(string gid)
{
Guid id = new Guid();
Guid.TryParse(gid, out id);
List<Node> list = GetThirdChildsID(id);
return JsonHelper<Node>.ListToJsonString(list);
} /// <summary>
/// 依据父节点的id获取子节点
/// </summary>
/// <param name="list">父节点id</param>
/// <returns></returns>
[WebMethod]
public static List<NodeTree> GetTreeThirdChildsID(Guid? gid)
{
List<NodeTree> childrenList = new List<NodeTree>();
foreach (sys_Organize childrenItem in iORGBLL.GetList(P => P.gPID == gid && P.iDeleteMark == 0))
{
NodeTree children = new NodeTree();
//仿造子节点【child】属性
//推断叶子节点是否含有子节点并设置属性
if (iORGBLL.GetList(P => P.gPID == childrenItem.gID && P.iDeleteMark == 0).Count > 0)
{
children.state = "closed";//默认 true
children.iconCls = iconOpen;//默认图标
}
children.id = childrenItem.gID;
children.gPID = childrenItem.gPID;
children.sAreaCode = childrenItem.sAreaCode;
children.iJB = childrenItem.iJB;
children.text = childrenItem.sFullName;
children.iDeleteMark = childrenItem.iDeleteMark;
children.dCreateDate = childrenItem.dCreateDate;
children.gCreateUserId = childrenItem.gCreateUserId;
children.sCreateUserRealname = childrenItem.sCreateUserRealname;
children.dModifyDate = childrenItem.dModifyDate;
children.gModifyUserId = childrenItem.gModifyUserId;
children.sModifyUserRealname = childrenItem.sModifyUserRealname; childrenList.Add(children);
}
return childrenList;
} /// <summary>
/// 依据父节点的id获取子节点
/// </summary>
/// <param name="list">父节点id</param>
/// <returns></returns>
[WebMethod]
public static List<Node> GetThirdChildsID(Guid? gid)
{
List<Node> childrenList = new List<Node>();
foreach (sys_Organize childrenItem in iORGBLL.GetList(P => P.gPID == gid && P.iDeleteMark == 0))
{
Node children = new Node();
//仿造子节点【child】属性
//推断叶子节点是否含有子节点并设置属性
if (iORGBLL.GetList(P => P.gPID == childrenItem.gID && P.iDeleteMark == 0).Count > 0)
{
children.isParent = true;//默认 true
children.iconOpen = iconOpen;//默认 展开属性
children.iconClose = iconClose;//默认 收缩属性
}
children.gID = childrenItem.gID;
children.gPID = childrenItem.gPID;
children.sAreaCode = childrenItem.sAreaCode;
children.iJB = childrenItem.iJB;
children.name = childrenItem.sFullName;
children.iDeleteMark = childrenItem.iDeleteMark;
children.dCreateDate = childrenItem.dCreateDate;
children.gCreateUserId = childrenItem.gCreateUserId;
children.sCreateUserRealname = childrenItem.sCreateUserRealname;
children.dModifyDate = childrenItem.dModifyDate;
children.gModifyUserId = childrenItem.gModifyUserId;
children.sModifyUserRealname = childrenItem.sModifyUserRealname; childrenList.Add(children);
}
return childrenList;
} /// <summary>
/// 依据父节点的id获取子节点
/// </summary>
/// <param name="list">父节点id</param>
/// <returns></returns>
[WebMethod]
public static List<Node> GetChildsID(Guid? gid)
{
List<Node> childrenList = new List<Node>();
foreach (sys_Organize childrenItem in iORGBLL.GetList(P => P.gPID == gid && P.iDeleteMark == 0))
{
Node children = new Node();
//仿造子节点【child】属性
//推断叶子节点是否含有子节点并设置属性
if (iORGBLL.GetList(P => P.gPID == childrenItem.gID && P.iDeleteMark == 0).Count > 0)
{
children.isParent = true;//默认 true
children.iconOpen = iconOpen;//默认 展开属性
children.iconClose = iconClose;//默认 收缩属性
}
children.gID = childrenItem.gID;
children.gPID = childrenItem.gPID;
children.sAreaCode = childrenItem.sAreaCode;
children.iJB = childrenItem.iJB;
children.name = childrenItem.sFullName;
children.iDeleteMark = childrenItem.iDeleteMark;
children.dCreateDate = childrenItem.dCreateDate;
children.gCreateUserId = childrenItem.gCreateUserId;
children.sCreateUserRealname = childrenItem.sCreateUserRealname;
children.dModifyDate = childrenItem.dModifyDate;
children.gModifyUserId = childrenItem.gModifyUserId;
children.sModifyUserRealname = childrenItem.sModifyUserRealname; childrenList.Add(children);
}
return childrenList;
}
}
}
树后台数据存储(採用webmethod)的更多相关文章
- OpenStack Ceilometer -- 后台数据存储优化之MongoDB的分片存储设置
https://xiaofandh12.github.io/Mongo-Shard 关于MongoDB MongoDB中的概念与关系型数据库之间的对应: Database --> Databas ...
- 通俗易懂理解 MySQL B+树、数据存储、索引等知识
文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247485630&idx=1&sn=681c9c0d ...
- Berkeley DB的数据存储结构——哈希表(Hash Table)、B树(BTree)、队列(Queue)、记录号(Recno)
Berkeley DB的数据存储结构 BDB支持四种数据存储结构及相应算法,官方称为访问方法(Access Method),分别是哈希表(Hash Table).B树(BTree).队列(Queue) ...
- SSIS 数据流的执行树和数据管道
数据流组件的设计愿景是快速处理海量的数据,为了实现该目标,SSIS数据源引擎需要创建执行树和数据管道这两个数据结构,而用户为了快速处理数据流,必须知道各个转换组件的阻塞性,充分利用流式处理流程,利用更 ...
- 重新学习MySQL数据库3:Mysql存储引擎与数据存储原理
重新学习Mysql数据库3:Mysql存储引擎与数据存储原理 数据库的定义 很多开发者在最开始时其实都对数据库有一个比较模糊的认识,觉得数据库就是一堆数据的集合,但是实际却比这复杂的多,数据库领域中有 ...
- Kafka session.timeout.ms heartbeat.interval.ms参数的区别以及对数据存储的一些思考
Kafka session.timeout.ms heartbeat.interval.ms参数的区别以及对数据存储的一些思考 在计算机世界中经常需要与数据打交道,这也是我们戏称CURD工程师的原因之 ...
- 【转帖】LSM树 和 TSM存储引擎 简介
LSM树 和 TSM存储引擎 简介 2019-03-08 11:45:23 长烟慢慢 阅读数 461 收藏 更多 分类专栏: 时序数据库 版权声明:本文为博主原创文章,遵循CC 4.0 BY-S ...
- 循序渐进VUE+Element 前端应用开发(27)--- 数据表的动态表单设计和数据存储
在我们一些系统里面,有时候会需要一些让用户自定义的数据信息,一般这些可以使用扩展JSON进行存储,不过每个业务表的显示项目可能不一样,因此需要根据不同的表单进行设计,然后进行对应的数据存储.本篇随笔结 ...
- Android——几种数据存储应用浅谈
(1)android中的数据存储主要有五种方式: 第一种.sharedPreferences存储数据, 适用范围:保存少量的数据,且这些数据的格式非常简单:字符串型.基本类型的值.比如应用程序的各种配 ...
随机推荐
- CSS3中的border-radius
以前在CSS2的基础上做圆角还能算得上是门学问!!各种图片.各种嵌套(<精通CSS——高级web标准解决方案>中有介绍,过程在这就不说了,网上一查就查得到,总之就是:没用CSS3之前觉得很 ...
- ViewPager实现广告自动轮播核心代码(Handler+Thread)
ViewPager数据源是4个线性布局,每个布局里面充满一张高度固定.宽度充满父布局的图片.有4个小圆点跟随ViewPager滑动.轮播原本我是用Timer+TimerTask的,但是问题颇多,很是郁 ...
- java:转换时间格式为String
SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); Date curDate = new ...
- tabbar动画切换
效果1: UIViewController *vc = self.viewControllers[self.selectedIndex]; CATransition *animation =[CATr ...
- Chapter 2.策略模式
首先贴一段代码: package xiao; import java.util.Scanner; class CashSuper{ private int num; private dou ...
- python读写zip文件
zipfile.ZipFile(fileName[, mode[, compression[, allowZip64]]]) fileName是没有什么疑问的了. mode和一般的文件操作一样,'r' ...
- VC++共享数据段实现进程之间共享数据
当我写了一个程序,我希望当这个程序同时运行两遍的时候,两个进程之间能共享一些全局变量,怎么办呢?很简单,使用VC\VC++的共享数据段.; #pragma data_seg()//恢复到正常段继续编程 ...
- springmvc中使用response的out.print问题
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws E ...
- Linux下VNC的安装和开机启动
1.确认VNC是否安装默认情况下,Red Hat Enterprise Linux安装程序会将VNC服务安装在系统上.确认是否已经安装VNC服务及查看安装的VNC版本[root@testdb ~]# ...
- uva - Broken Keyboard (a.k.a. Beiju Text)(链表)
11988 - Broken Keyboard (a.k.a. Beiju Text) You’re typing a long text with a broken keyboard. Well i ...