controller动态获取单位用户树  
#region 下拉树菜单
/// <summary>
/// 获取工作人员树菜单
/// </summary>
/// <param name="addid"></param>
/// <param name="unitid"></param>
/// <returns></returns>
public string GetUserMenu(int addid)
{
AID_UNIT_DAL unitdal = AID_UNIT_DAL._(); decimal unitid = this.CurrentUnitId;
List<AID_UNIT> unitList = unitdal.GetList().Where(c => c.UNITID == unitid).ToList(); List<Menu> menulist = new List<Menu>();
if (unitList.Count > )
{
Menu menu = new Menu();
foreach (var page in unitList)
{
menu.id = page.UNITID.ToString();
menu.text = page.UNITNAME;
var count = unitList.Where(c => c.PARENTUNIT == page.UNITID).Count();
if (count > )
{
menu.state = "closed";
BindMenu(menu, unitid);
}
BindStaffMenu(menu, unitid);
menulist.Add(menu);
}
}
string js = JsonMapper.ToJson(menulist);
return js;
}
/// <summary>
/// 绑定用户信息
/// </summary>
/// <param name="staffMenu"></param>
/// <param name="unitid"></param>
private void BindStaffMenu(Menu staffMenu, decimal unitid)
{
INFO_STAFF_DAL staffdal = INFO_STAFF_DAL._();
List<INFO_STAFF> staffList = staffdal.GetList().Where(c => c.WORKUNIT == unitid).ToList(); foreach (var staff in staffList)
{
Menu childMenu = new Menu();
childMenu.id = staff.STAFFID.ToString();
childMenu.text = staff.STAFFNAME;
//递归绑定
// BindStaffMenu(childMenu,unitid);
//给父菜单添加子菜单
staffMenu.children.Add(childMenu);
}
}
/// <summary>
/// 绑定子单位
/// </summary>
/// <param name="parentMenu"></param>
private void BindMenu(Menu parentMenu, decimal unitid)
{
AID_UNIT_DAL unitdal = AID_UNIT_DAL._();
List<AID_UNIT> secondary = unitdal.GetList().Where(p => p.PARENTUNIT == unitid).ToList();
foreach (var second in secondary)
{
Menu childMenu = new Menu();
childMenu.id = second.UNITID.ToString();
childMenu.text = second.UNITNAME;
var count = secondary.Where(c => c.PARENTUNIT == second.UNITID).Count();
if (count > )
childMenu.state = "closed";
//递归绑定
BindMenu(childMenu, unitid);
//给父菜单添加子菜单
parentMenu.children.Add(childMenu);
}
} //定义菜单类
private class Menu
{
private string _id;
private string _text;
private string _state;
private List<Menu> _children = new List<Menu>();
public string id { get { return _id; } set { _id = value; } }
public string text { get { return _text; } set { _text = value; } }
public string state { get { return _state; } set { _state = value; } }
public List<Menu> children { get { return _children; } set { _children = value; } }
}
#endregion
/// <summary>
/// 初始化单位下列树菜单
/// </summary>
/// <param name="addid">addid>0时,下拉树菜单含“顶级菜单”,addid<0时,下拉树菜单不含“顶级菜单”</param>
/// <returns></returns>
public ActionResult getReletiveUser(int addid)
{
string js = GetUserMenu(addid);
return Content(js, "application/json");
}
js动态生成复选框
<script type="text/javascript">
$("#USID").tree({
url: "/SystemMng/getReletiveUser?addid=" + ,
required: true,
panelHeight: ,
checkbox: true,
onBeforeSelect: function (node) {
if (node.state == "open") {
$("#hidUnit").val(node.id);
} else {
alert("请选择子单位!")
}
}
});
</script>
 <ul class="easyui-tree" type="text" name="USID" id="USID" style="width:100%; height:34px; margin-left:15px;" data-options=""> 


easyui_tree 复选框 动态加载树的更多相关文章

  1. LayUI 多选框动态加载、启用、禁用、赋值、取值等js实现

    例如多选框如下: <div class="layui-form"> <select xm-select="city"> </sel ...

  2. C#动态加载树菜单

    在做权限系统的时候,需要有一个树形的菜单.下图就是一个树形菜单的样式 但问题是,我们可以实现写死的树形菜单.什么是写死的?就是在前台代码中写好要加载的树形菜单是什么样子的.但是我们权限系统的要求是动态 ...

  3. bootstrap 模态框动态加载数据

    .页面中添加modal <!-- 模态框(Modal) --> <div class="modal fade" id="showModal" ...

  4. ExtJS 创建动态加载树

    Ext 中导航树的创建有两种方式:1.首先将所有的数据读出来,然后绑定到前台页面.2.每点击一个节点展开后加载子节点.在数据量比较小的时候使用第一种方式加载的会快一些,然而当数据量比较大的时候,我还是 ...

  5. LayUI中实现上级下拉框动态加载下级下拉框js

    js代码: var form = layui.form, layer = layui.layer; form.on("select(上级)", function(data){ va ...

  6. EasyUI Jquery 动态加载树,点击节点加载

    <script type="text/javascript"> $(function() { $(document).ready(function() { $.post ...

  7. jQuery 动态加载树

    本案例中用到了jquery的 tree插件,在本文的附件中可以下载 jsp代码: <%@ page language="java" import="java.uti ...

  8. 【zTree】zTree根据后台数据生成树并动态设置前面的节点复选框的选中状态

    0.页面中准备树的ul <ul id="treeDemo10" class="ztree" style="display: none;" ...

  9. 表格中的checkbox复选框 全选非全选 公共方法 及提交选中结果

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

随机推荐

  1. 使用JUnit测试java代码

    Junit 单元测试实验报告  一.实验环境 MyEclipse2014.Junit4.10 二.实验目的 学会单元测试,在MyEclipse中进行Junit测试 三.实验步骤 1.写出要测试的类 代 ...

  2. 【转】Handler+ExecutorService(线程池)+MessageQueue模式+缓存模式

    http://www.cnblogs.com/wanqieddy/archive/2013/09/06/3305482.html android线程池的理解,晚上在家无事 预习了一下android异步 ...

  3. GDB调试总结__1

    该博客旨在分享IT技术心得和实际工作中遇到问题的解决方法,下面是新浪博客地址http://blog.sina.com.cn/qianyumolu,则为分享经济.行业趋势.心灵文章等,有兴趣的朋友能够踩 ...

  4. 数学之路-python计算实战(20)-机器视觉-拉普拉斯算子卷积滤波

    拉普拉斯算子进行二维卷积计算,线性锐化滤波 # -*- coding: utf-8 -*- #线性锐化滤波-拉普拉斯算子进行二维卷积计算 #code:myhaspl@myhaspl.com impor ...

  5. qt 状态栏

    有段时间没有写过博客了.假期去上海旅游,所以一直没有能够上网.现在又来到这里,开始新的篇章吧!   今天的内容主要还是继续完善前面的那个程序.我们要为我们的程序加上一个状态栏.   状态栏位于主窗口的 ...

  6. eclipse4.3 kepler中安装maven

    1.软件准备 a:Eclipse 4.3 http://www.eclipse.org/downloads/ b:maven http://maven.apache.org/download.cgi ...

  7. CSS块级元素、内联元素概念

    CSS文档流与块级元素(block).内联元素(inline),之前翻阅不少书籍,看过不少文章, 看到所多的是零碎的CSS布局基本知识,比较表面.看过O'Reilly的<CSS权威指南>, ...

  8. RPM工具

    一.RMP工具管理RPM包 rpm命令是RPM软件包的管理工具.rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎.逐渐 ...

  9. 一款js、css压缩工具yuicompressor

    //压缩JS java -jar yuicompressor-.jar --type js --charset utf- -v src.js > packed.js //压缩CSS java - ...

  10. iOS中MVVM的架构设计与团队协作

    对MVVM的理解主要是借鉴于之前的用过的MVC的Web框架,之前用过ThinkPHP框架,和SSH框架,都是MVC的架构模式,今天MVVM与传统的MVC可谓是极为相似,也可以说是兄弟关系,也就是一家人 ...