日期:2014-06-10  浏览次数:20798 次

效果图和json格式

Controllers代码
using HR.Models;
using HR.Models.Repository;
/************************************************************************************
 * 命名空间:HR.Controllers
 * Controller:  TreeController
 * 版本号:  F 1.0.0.0
 * 负责人:  Markfan
 * 电子邮箱:ffgign@qq.com
 * 移动电话:159 2760 2711
 * QQ号码:  115637488
 * 代码说明:全部类型树菜单
 *
 *
 * =====================================================================
 * 更新记录
 * 更新人: 
 * 版本号: F 1.0.0.0
 * 更新代码说明:
 *
 ************************************************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using HR.ViewModels;
using HR.Helpers;

namespace HR.Controllers
{
  
    public class TreeController : Controller
    {
        //
        // GET: /Tree/
        DepartmentRepository departrepository = new DepartmentRepository();
        ClassRepository classrepository = new ClassRepository();
        SystemUserRepository systemuserrepository = new SystemUserRepository();
        public IQueryable<Department> list { set; get; }
        public ActionResult Index()
        {
            string cookie = CookieHelper.GetValue("SystemUserID");
            int sid = int.Parse(CookieHelper.GetValue("SystemUserID"));
            var model = systemuserrepository.GetModel(sid);
            Employees em = new Employees();
            if (model != null)
            {
                em = emprep.GetModelList().Where(d => d.WorkNumber == model.LogName).FirstOrDefault();
            }
            if (em != null)
            {
                ViewBag.empid = em.DepartmentID;
            }
           
         
         
            return View();
        }

        public ActionResult Show()
        {
            return View();
        }

        //显示部门
        public JsonResult TreeShow()
        {
            //查询顶级部门列表
            var parentdepartmentlist = departrepository.GetModelListByState(1)
                .Where(d => d.ParentID == 0)
                .OrderBy(d => d.Sort);
            //查询岗位列表
            var joblist = classrepository.GetModelListByState(1).Where(d => d.ParentID == 2);
            var treelist = new List<DepartViewModel>();

            foreach (var parentdepartment in parentdepartmentlist)
            {
                var parentdepartmentmodel = new DepartViewModel();
                parentdepartmentmodel.id = parentdepartment.DepartmentID.ToString();
                parentdepartmentmodel.name = parentdepartment.DepartmentName;
                parentdepartmentmodel.open = "true";
                parentdepartmentmodel.pId = "0";
                parentdepartmentmodel.click = "AddDepartment(" + parentdepartment.DepartmentID + ",'" + parentdepartment.DepartmentName + "');";
                treelist.Add(parentdepartmentmodel);
                var departmentlist = departrepository.GetModelListByState(1)
                    .Where(d => d.ParentID == parentdepartment.DepartmentID)
                    .OrderBy(d => d.Sort);
                foreach (var deparment in departmentlist)
                {
                    var deparmentmodel = new DepartViewModel();
                    deparmentmodel.id = deparment.DepartmentID.ToString();
                    deparmentmodel.name = deparment.DepartmentName;
                    deparmentmodel.open = "false";
                    deparmentmodel.pId = deparment.ParentID.ToString();
                    deparmentmodel.click = "AddDepartment(" + deparment.DepartmentID + ",'" + deparment.DepartmentName + "');";
                    treelist.Add(deparmentmodel);
                }
            }

            var source = from c in treelist
                         select c;
            return Json(source, JsonRequestBehavior.AllowGet);
        }
        EmployeesRepository emprep = new EmployeesRepository();
        public JsonResult Tree()
        {
        
          
            var parentdepartmentlist = departrepository.GetModelListByState(1)
                .Where(d => d.ParentID == 0)
                .OrderBy(d => d.Sort);
            var joblist = classrepository.GetModelListByState(1).
                Where(d => d.ParentID == 2)
                .OrderBy(d => d.Sort);
            var treelist = new List<DepartViewModel>();

            foreach (var parentdepartment in parentdepartmentlist)
            {
                var parentdepartmentmodel = new DepartViewModel();
                parentdepartmentmodel.id = parentdepartment.DepartmentID.ToString();
                parentdepartmentmodel.name = parentdepartment.DepartmentName;
                parentdepartmentmodel.open = "false";
                parentdepartmentmodel.pId = "0";
                parentdepartmentmodel.url = "/employees/index/0?Jobs=0";
                parentdepartmentmodel.target = "rform";
                treelist.Add(parentdepartmentmodel);


                var departmentlist = departrepository.GetModelListByState(1)
                    .Where(d => d.ParentID == parentdepartment.DepartmentID)
                    .OrderBy(d => d.Sort);
                foreach (var deparment in departmentlist)
                {
                    var deparmentmodel = new DepartViewModel();
                    deparmentmodel.id = deparment.DepartmentID.ToString();
                    deparmentmodel.name = deparment.DepartmentName;
                    deparmentmodel.open = "false";
                    deparmentmodel.pId = deparment.ParentID.ToString();
                    deparmentmodel.url = "/employees/index/" + deparment.DepartmentID + "?Jobs=0";
                    deparmentmodel.target = "rform";
                    treelist.Add(deparmentmodel);
                    foreach (var job in joblist)
                    {
                        var model = new DepartViewModel();
                        model.id = deparment.DepartmentID.ToString() + "-" + job.ClassID.ToString();
                        model.name = job.ClassName;
                        model.pId = deparment.DepartmentID.ToString();
                        model.open = "false";
                        model.url = "/employees/index/" + deparment.DepartmentID + "?Jobs=" + job.ClassID + "";
                        model.target = "rform";
                        treelist.Add(model);
                    }
                }

            }

            var source = from c in treelist
                         select c;
            return Json(source, JsonRequestBehavior.AllowGet);
        }
        public JsonResult TreeType(int id)
        {
            string cookie = CookieHelper.GetValue("SystemUserID");

            if (string.IsNullOrEmpty(cookie))
            {
                int sid = int.Parse(CookieHelper.GetValue("SystemUserID"));
                var model = emprep.GetModel(sid);
                Employees em = new Employees();
                if (model != null)
                {
                    var emp = emprep.GetModelList().Where(d => d.WorkNumber == model.WorkNumber).FirstOrDefault();
                }
                ViewBag.empid = em.DepartmentID;
            }
         
            var parentdepartmentlist = departrepository.GetModelListByState(1)
                .Where(d => d.ParentID == 0)
                .OrderBy(d => d.Sort);
            var joblist = classrepository.GetModelListByState(1).
                Where(d => d.ParentID == 2)
                .OrderBy(d => d.Sort);
            var treelist = new List<DepartViewModel>();

            foreach (var parentdepartment in parentdepartmentlist)
            {
                var parentdepartmentmodel = new DepartViewModel();
                parentdepartmentmodel.id = parentdepartment.DepartmentID.ToString();
                parentdepartmentmodel.name = parentdepartment.DepartmentName;
                parentdepartmentmodel.open = "false";
                parentdepartmentmodel.pId = "0";
                parentdepartmentmodel.url = "/employees/index/0?Jobs=0";
                parentdepartmentmodel.target = "rform";
                treelist.Add(parentdepartmentmodel);


                var departmentlist = departrepository.GetModelListByState(1)
                    .Where(d => d.DepartmentID == id)
                    .OrderBy(d => d.Sort);
                foreach (var deparment in departmentlist)
                {
                    var deparmentmodel = new DepartViewModel();
                    deparmentmodel.id = deparment.DepartmentID.ToString();
                    deparmentmodel.name = deparment.DepartmentName;
                    deparmentmodel.open = "false";
                    deparmentmodel.pId = deparment.ParentID.ToString();
                    deparmentmodel.url = "/employees/index/" + deparment.DepartmentID + "?Jobs=0";
                    deparmentmodel.target = "rform";
                    treelist.Add(deparmentmodel);
                    foreach (var job in joblist)
                    {
                        var model = new DepartViewModel();
                        model.id = deparment.DepartmentID.ToString() + "-" + job.ClassID.ToString();
                        model.name = job.ClassName;
                        model.pId = deparment.DepartmentID.ToString();
                        model.open = "false";
                        model.url = "/employees/index/" + deparment.DepartmentID + "?Jobs=" + job.ClassID + "";
                        model.target = "rform";
                        treelist.Add(model);
                    }
                }

            }

            var source = from c in treelist
                         select c;
            return Json(source, JsonRequestBehavior.AllowGet);
        }
    }
}

 

using HR.Models;
using HR.Models.Repository;
/************************************************************************************
 * CLR版本: 4.0.30319.18051
 * 机器名称:MARKFAN
 * 命名空间:HR.ViewModels
 * 文件名:  DepartViewModel
 * 版本号:  V1.0.0.0
 * 唯一标识:cfcc84df-4cea-4400-9e02-95ba620a453d
 * 创建人:  Markfan

 * 电子邮箱:ffgign@qq.com
 * 移动电话:159 2760 2711
 * QQ号码:  115637488
 * 创建时间:2014/05/12 20:51:56
 * 描述:
 *
 *
 * =====================================================================
 * 修改标记
 * 修改时间:2014/05/12 21:20:13
 * 修改人: mark
 * 版本号: F1.0.0.0
 * 描述:
 *
 *
 *
 *
 ************************************************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace HR.ViewModels
{
    public class DepartViewModel
    {
        /// <summary>
        /// ID
        /// </summary>
        public string id { get; set; }
        /// <summary>
        /// 父级ID
        /// </summary>
        public string pId { get; set; }
        /// <summary>
        /// 名称
        /// </summary>
        public string name { get; set; }
        /// <summary>
        /// 是否展开
        /// </summary>
        public string open { get; set; }
        /// <summary>
        /// 跳转地址
        /// </summary>
        public string url { get; set; }
        /// <summary>
        /// 跳转属性
        /// </summary>
        public string target { get; set; }
        /// <summary>
        /// 点击事件
        /// </summary>
        public string click { get; set; }
    }
}

 

 

 

页面调用代码

 

 

 

@{
    ViewBag.Title = "Index";
}

<!DOCTYPE html>
<html>
<head>
    <title>tree</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <script src="~/Content/EasyUI/jquery-1.8.3.min.js"></script>
    <link href="~/Content/css/zTreeStyle/zTreeStyle.css" rel="stylesheet" />
    <script src="~/Content/js/jquery.ztree.core-3.5.js"></script>

    <script type="text/javascript">
        <!--
    var setting = {
        data: {
            simpleData: {
                enable: true
            }
        }
    };
        var url = "/Tree/Tree";
   // var url = "/Tree/TreeType/@ViewBag.empid";
    $.get(url, function (data) {
        $.fn.zTree.init($("#treeDemo"), setting, data);
    });
    //-->
    </script>
    <style type="text/css">
    </style>
</head>

<body>
    <div class="content_wrap">
        <div class="zTreeDemoBackground left">
            <ul id="treeDemo" class="ztree"></ul>
        </div>
    </div>
</body>
</html>

下载ztree地址: http://www.ztree.me/

 

声明:本博客高度重视知识产权保护,发现本博客发布的信息包含有侵犯其著作权的链接内容时,请联系我,我将第一时间做相应处理,联系邮箱ffgign@qq.com

 

作者:Mark Fan (小念头)    来源:http://cube.cnblogs.com
说明:未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如有疑问,可以通过 ffgign@qq.com 联系作者,本文章采用 知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可

 

知识共享许可协议