主攻ASP.NET.4.5.1 MVC5.0之重生:在项目中使用zTree jQuery 树插件
效果图和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()
.Where(d => d.ParentID == )
.OrderBy(d => d.Sort);
//查询岗位列表
var joblist = classrepository.GetModelListByState().Where(d => d.ParentID == );
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 = "";
parentdepartmentmodel.click = "AddDepartment(" + parentdepartment.DepartmentID + ",'" + parentdepartment.DepartmentName + "');";
treelist.Add(parentdepartmentmodel);
var departmentlist = departrepository.GetModelListByState()
.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()
.Where(d => d.ParentID == )
.OrderBy(d => d.Sort);
var joblist = classrepository.GetModelListByState().
Where(d => d.ParentID == )
.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 = "";
parentdepartmentmodel.url = "/employees/index/0?Jobs=0";
parentdepartmentmodel.target = "rform";
treelist.Add(parentdepartmentmodel); var departmentlist = departrepository.GetModelListByState()
.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()
.Where(d => d.ParentID == )
.OrderBy(d => d.Sort);
var joblist = classrepository.GetModelListByState().
Where(d => d.ParentID == )
.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 = "";
parentdepartmentmodel.url = "/employees/index/0?Jobs=0";
parentdepartmentmodel.target = "rform";
treelist.Add(parentdepartmentmodel); var departmentlist = departrepository.GetModelListByState()
.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 中国大陆许可协议进行许可

主攻ASP.NET.4.5.1 MVC5.0之重生:在项目中使用zTree jQuery 树插件的更多相关文章
- 主攻ASP.NET.4.5.1 MVC5.0之重生:Web项目语音朗读网页文本,简单语音提示浏览状态
第一步 添加SpeechLib.dll 下载SpeechLib.dll: 在项目中并且引用DLL using SpeechLib; using System.Threading; 第二步 调用并使用 ...
- 主攻ASP.NET.4.5.1 MVC5.0之重生:系统角色与权限(一)
数据结构 权限分配 1.在项目中新建文件夹Helpers 2.在HR.Helpers文件夹下添加EnumMoudle.Cs namespace HR.Helpers { public enum Enu ...
- 主攻ASP.NET.4.5.1 MVC5.0之重生:空地搭建一个包含 Ninject框架 项目
1.创建一个空白解决方案 2.添加一个类库 名称为XXX.Domain 3.添加一个ASP.MVC 名称为XXX.WebUI 4.选着空模版,勾选MVC核心引用 5.添加单元测试项目XXX.UntiT ...
- 主攻ASP.NET.4.5.1 MVC5.0之重生:政府行政网站常用友情链接跳转javascript[干货分享]
<!-----------------------------------> <script language="JavaScript" type="t ...
- 主攻ASP.NET.4.5.1 MVC5.0之重生:创建UIHelper通用自定义分页和选择开关与PagesHelper和IsSelect简单用法
@helper放入地方 分页效果 选择开关编辑调用 <dl> <dd class="dc1">是否主管:</dd> <dd> @UI ...
- 主攻ASP.NET.4.5.1 MVC5.0之重生:系统角色与权限(二)
系统角色篇 数据结构 用户管理 Controller代码 public class SystemUserController : Controller { //public void Log() // ...
- 主攻ASP.NET.4.5.1 MVC5.0之重生:根据产品类别显示菜单分类和分页
路径访问的几种方式和分页效果 显示其它类别的效果和多数据分页效果 默认访问网站路径效果和多数据分页效果 URL路径访问可页面 http://localhost:5339/stationery http ...
- spring3.0结合Redis在项目中的运用
推荐一个程序员的论坛网站:http://ourcoders.com/home/ 以下内容使用到的技术有:Redis缓存.SpringMVC.Maven.项目中使用了redis缓存,目的是在业务场景中, ...
- 无法安装程序包“MIcrosoft.Owin.Security 2.0.2”。您正在尝试将此程序包安装到某个将“.NETFramework,Version=v4.0”作为目标的项目中。
在VS2010 MVC4项目中,安装NuGet程序包Microsoft.AspNet.SignalR时出现以下错误: 原因是安装的版本是Microsoft.AspNet.SignalR 2.0.2,要 ...
随机推荐
- 学习spring2--跟我一起学Spring 3(3)–使用Spring开发第一个HelloWorld应用
http://www.importnew.com/13246.html 首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 我要投稿 更多频道 » - 导航条 - 首页 所有文章 资讯 ...
- Spring4 MVC+ AngularJS CRUD使用$http实例
这篇文章显示了使用Spring MVC4整合AngularJS.我们将创建一个使用后端和AngularJS作为前端的纯JSP封装Spring REST API一个CRUD应用程序, 使用 $http ...
- Linux网络编程(一)基础
一.数据存储顺序:大端和小端 大端模式: 地址的增长顺序与值的增长顺序相反 小段模式: 地址的增长顺序与值的增长顺序同样 为什么会有大小端模式之分呢?这是由于在计算机系统中,我们是以字 ...
- wpf数据绑定更新通知
类似于这样子的;大致的意思是:一个代码变量,通过改变变量的值,绑定这个变量的这个圆颜色也在变化 就是一种心跳效果 在网上数据触发的感觉不多,废了不少时间,这里做个总结 1:通知 class Notif ...
- Editor编辑器的一些用法
共有两个脚本,一个是有关Inspector面板的,一个是window的 using UnityEngine; using System.Collections; using UnityEditor; ...
- day7笔记
一.上节回顾 字典:dic = {'name':'alex'} 1,增 dic['k'] = 'v' 有键值对,则覆盖 setdefault 有键值对,不添加 dic.setdefault('k1', ...
- Eclipse集成resin服务器
就我遇到的问题来说吧: 1. resin-pro-4.0.36去官网下载,目前这是最新版,27M 2. Eclipse安装Resin服务器的插件 Help->Install New Soft-& ...
- EasyUI怎么利用onBeforeRender事件
onBeforeRender事件是view的属性,该事件发生在把ajax请求到的数据填充到表格内容中之前 将此段代码附加在DataGrid初始化后执行,即可完成在DataGrid渲染之前进行操作 // ...
- 网易2016研发project师编程题
http://www.nowcoder.com/test/970447/summary [编程题] 小易的升级之路 小易常常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a ...
- redhat 配置本地yum源163yum源epel 源,无需卸载yum!无须拷贝ISO
都知道redhat不收费,但是其yum服务是要收费的,不想出钱那就自己配置yum源就好了. 首先,博主之前也没用过redhat,第一次用yum装包的时候提示什么没注册之类的,balaba一大堆,然后就 ...