主攻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,要 ...
随机推荐
- plsql programming 13 其他数据类型
bolean 类型 raw 类型, 用来保存和操作少量的二进制数据. urowid 和 rowid 类型, 这两种数据类型表示数据库的 rowid. 所谓 rowid 就是一个标识符-用来表示数据库中 ...
- Python 双向链表 快速排序
1.创建链表: from random import randint class DLinkedNode(object): def __init__(self, data=None, pre=None ...
- 003android初级篇之【转】Android开发中颜色的定义方法
正好用到颜色的定义,但脑子里没有记住具体,转载一篇加强印象 1.使用Color类的常量,如: int color = Color.BLUE; // 创建一个蓝色 是使用Android提供的颜色 int ...
- 继续聊WPF——动态数据模板
我为啥称之为“动态数据模板”?先看看下面的截图,今天,我们就是要实现这种功能. 大概是这样的,我们定义的DataTemplate是通过触发器动态应用到 ComboBoxItem 上. 这个下拉列表控件 ...
- 操作XML-dom4j
首先是到dom4j的官网dom4j文件包,下载之后解压如下所示. 在根目录中,找到dom4j-1.6.1jar包,加入到eclipse中的lib文件下,最后build path一下,即可使用相关的方法 ...
- Tomcat访问日志详细配置(转)
在server.xml里的<host>标签下加上<Valve className="org.apache.catalina.valves.AccessLogValve&qu ...
- windows Objective-C模拟环境搭建
安装GNUstep GNUstep Windows Installer提供了Windows平台下的Objective-C的模拟开发环境,一共有四个软件包,其中GNUstep System和GNUste ...
- Scanner类与Random类
1.Scanner类 Scanner类的作用是获得输入,下面代码用于获得用户的键盘输入,实例如下: 常用方法: String next():将输入信息的下一个标记扫描为一个字符串 Int nextIn ...
- 集成 SOLR 到 TOMCAT 中(傻瓜教程)
按照如下配置,整个 Solr 是绿色版的,可以将 Tomcat 目录复制到任何一个地方运行 1.下载 solr 4.3 版本 2.下载 Tomcat 7 ( 6 也可以),另外可以根据系统下载 32 ...
- 浅谈Spring框架注解的用法分析
原文出处: locality 1.@Component是Spring定义的一个通用注解,可以注解任何bean. 2.@Scope定义bean的作用域,其默认作用域是”singleton”,除此之外还有 ...