easyui_tree 复选框 动态加载树
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 复选框 动态加载树的更多相关文章
- LayUI 多选框动态加载、启用、禁用、赋值、取值等js实现
例如多选框如下: <div class="layui-form"> <select xm-select="city"> </sel ...
- C#动态加载树菜单
在做权限系统的时候,需要有一个树形的菜单.下图就是一个树形菜单的样式 但问题是,我们可以实现写死的树形菜单.什么是写死的?就是在前台代码中写好要加载的树形菜单是什么样子的.但是我们权限系统的要求是动态 ...
- bootstrap 模态框动态加载数据
.页面中添加modal <!-- 模态框(Modal) --> <div class="modal fade" id="showModal" ...
- ExtJS 创建动态加载树
Ext 中导航树的创建有两种方式:1.首先将所有的数据读出来,然后绑定到前台页面.2.每点击一个节点展开后加载子节点.在数据量比较小的时候使用第一种方式加载的会快一些,然而当数据量比较大的时候,我还是 ...
- LayUI中实现上级下拉框动态加载下级下拉框js
js代码: var form = layui.form, layer = layui.layer; form.on("select(上级)", function(data){ va ...
- EasyUI Jquery 动态加载树,点击节点加载
<script type="text/javascript"> $(function() { $(document).ready(function() { $.post ...
- jQuery 动态加载树
本案例中用到了jquery的 tree插件,在本文的附件中可以下载 jsp代码: <%@ page language="java" import="java.uti ...
- 【zTree】zTree根据后台数据生成树并动态设置前面的节点复选框的选中状态
0.页面中准备树的ul <ul id="treeDemo10" class="ztree" style="display: none;" ...
- 表格中的checkbox复选框 全选非全选 公共方法 及提交选中结果
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
随机推荐
- 回某位朋友问题备受phpcgi.exe煎熬现在cpu跑满(解决方案)
(本文原创,但是cgi参数参考一个大神写的针对小服务器的,希望大家积极投票哦) 下面是对php-cgi.ext过多引起服务器cup%的解决方法,希望对大家有帮助;大多数情况是发生在第四项上; 解决 ...
- linux操作系统cron详解
Linux操作系统定时任务系统 Cron 入门 cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业.由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动 ...
- 遍历datatable的几种方法【转载】
遍历datatable的方法2009-- :02方法一: DataTable dt = dataSet.Tables[]; ; i < dt.Rows.Count ; i++) { string ...
- [Reactive Programming] Async requests and responses in RxJS
We will learn how to perform network requests to a backend using RxJS Observables. A example of basi ...
- linux下sqlite3可视化工具
1.介绍:sqlite3是linux上的小巧的数据库,一个文件就是一个数据库. 2.安装:要安装sqlite3,可以在终端提示符后运行下列命令:sudo apt-get install sqlite3 ...
- 用 Qt 中的 QDomDocument类 处理 XML 文件(下)
QDomDocument doc; 1).创建根节点:QDomElement root = doc.documentElement("rootName " ); 2).创建元素 ...
- [转] git config命令使用第一篇——介绍,基本操作,增删改查
平时我们在使用git的时候,很少去关注其配置是如何,而在实际开发中,对git config这个命令的使用也并不是很多,但是配置对一个程序和项目来说都是很重要的,我们今天来看看git的配置以及git c ...
- linux设置语言编码
前段时间在服务器上安装了centos6.2版本,当初安装时语言选择英文.这本来也没有什么问题,直到前一段时间.我的同事发现部署的web项目中出现乱码情况.但中文作为参数进行传递到下一个页面的时候就乱码 ...
- Jquery 判断滚动条到达顶部或底部
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- linux进程地址空间详解(转载)
linux进程地址空间详解(转载) 在前面的<对一个程序在内存中的分析 >中很好的描述了程序在内存中的布局,这里对这个结果做些总结和实验验证.下面以Linux为例(实验结果显示window ...