码迷,mamicode.com
首页 > Web开发 > 详细

树后台数据存储(采用webmethod)

时间:2015-06-08 17:32:57      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:

树集合篇:

第六篇:树后台数据存储:

TODO:

关于后台数据存储将集中在此篇讲解:

/*
 *作者:方浩然
 *日期: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)

标签:

原文地址:http://blog.csdn.net/hr1187362408/article/details/46412887

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!