前台HTML:

<div class="search-container">
<table class="search-container-table" cellpadding="0" cellspacing="0">
<tr>
<td>统计年份:</td>
<td>
<input type="text" class="input-text" id="year" name="year" onclick="WdatePicker({ dateFmt: 'yyyy', minDate: '1980', maxDate: '2099' })" />
</td>
<td>统计部门:</td>
<td>
<input type="text" name="dept" id="dept" class="easyui-combotree" style="width: 202px; height: 29px; overflow: auto" />
</td>
</tr>
<tr>
<td>检测项目:
</td>
<td>
<input name="testItem" id="testItem" class="easyui-combotree" style="width: 250px; height: 29px;" />
</td>
<td>
<a class="a-btn" href="javascript:void(0);" onclick="loadgrid()">
<img alt="" src="~/Content/images/stat.gif" />
统计
</a>
</td>
</tr>
</table>
</div>

前台JS:

//部门树
$("#dept").combotree({
editable: false,
url: '@Url.Content("~/DetReport/DetReportManage/GetDeptTree")',
onSelect: function (node) {
//加载检测项目
$("#testItem").combotree({
editable: false,
url: '@Url.Content("~/DetReport/YSLReport/GetTestItemTree?deptCode=")' + node.id,
onSelect: function (node) {
//显示全路径
var parent = node;
var tree = $('#testItem').combotree('tree');
var path = new Array();
do {
path.unshift(parent.text);
var parent = tree.tree('getParent', parent.target);
} while (parent);
var pathStr = '';
for (var i = 0; i < path.length; i++) {
pathStr += path[i];
if (i < path.length - 1) {
pathStr += ' - ';
}
}
setTimeout(function () {
$('input[name="testItem"]').prev().val(pathStr);
}, 100);
}
});
}
});

后台代码1:

/// <summary>
/// 获取部门树
/// </summary>
public JsonResult GetDeptTree()
{
List<object> list = new List<object>(); List<SYS_DEPT> deptListAll = m_DeptDal.GetDeptListAll();
foreach (SYS_DEPT dept0 in deptListAll.FindAll(a => string.IsNullOrWhiteSpace(a.PDEPTCODE)))
{
var obj0 = new
{
id = dept0.DEPTCODE,
text = dept0.DEPTNAME,
children = new List<object>()
};
foreach (SYS_DEPT dept1 in deptListAll.FindAll(a => a.PDEPTCODE == dept0.DEPTCODE))
{
var obj1 = new
{
id = dept1.DEPTCODE,
text = dept1.DEPTNAME,
children = new List<object>()
};
foreach (SYS_DEPT dept2 in deptListAll.FindAll(a => a.PDEPTCODE == dept1.DEPTCODE))
{
var obj2 = new
{
id = dept2.DEPTCODE,
text = dept2.DEPTNAME,
children = new List<object>()
};
foreach (SYS_DEPT dept3 in deptListAll.FindAll(a => a.PDEPTCODE == dept2.DEPTCODE))
{
var obj3 = new
{
id = dept3.DEPTCODE,
text = dept3.DEPTNAME,
children = new List<object>()
};
obj2.children.Add(obj3);
}
obj1.children.Add(obj2);
}
obj0.children.Add(obj1);
}
list.Add(obj0);
} return Json(list, JsonRequestBehavior.AllowGet);
}

后台代码2:

/// <summary>
/// 获取检测项目树(统计用)
/// </summary>
public JsonResult GetTestItemTree(string deptCode)
{
List<object> list = new List<object>(); List<SYS_DEPT> deptListAll = m_DeptDal.GetDeptListAll();
List<DETECTIONITEMS> itemListAll = m_DetectionItemsDAL.GetDetectionItemsListAll();
List<SPECIALTY> specialtyListAll = m_SpecialtyDAL.GetSpecialtyListAll();
List<SYS_DEPT> deptList = deptListAll.FindAll(a => a.DEPTCODE.IndexOf(deptCode) == );
if (deptList.Count > )
{
foreach (SPECIALTY specialty in specialtyListAll.FindAll(a => deptList.Exists(b => b.DEPTCODE == a.DEPTCODE)))
{
var specialtyObj = new
{
id = specialty.SPECIALTYID,
text = specialty.SPECIALTYNAME,
leaf = false,
type = , //1专业2样品名称3检测项目
children = new List<object>()
};
foreach (DETECTIONITEMS items in itemListAll.FindAll(a => a.SPECIALTYID == specialty.SPECIALTYID && a.PID == ))
{
List<DETECTIONITEMS> subItemsList = itemListAll.FindAll(a => a.PID == items.DETITEMID);
var itemsObj = new
{
id = items.DETITEMID,
text = items.ITEMNAME,
leaf = subItemsList.Count > ? false : true, //只能选择leaf为true的节点
type = , //1专业2样品名称3检测项目
children = new List<object>()
};
foreach (DETECTIONITEMS subItems in subItemsList)
{
var subItemsObj = new
{
id = subItems.DETITEMID,
text = subItems.ITEMNAME,
leaf = true, //只能选择leaf为true的节点
type = , //1专业2样品名称3检测项目
children = new List<object>()
};
itemsObj.children.Add(subItemsObj);
}
specialtyObj.children.Add(itemsObj);
}
list.Add(specialtyObj);
}
} return Json(list, JsonRequestBehavior.AllowGet);
}

示意图:

easyui combotree的使用的更多相关文章

  1. EasyUI ComboTree无限层级异步加载示例

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="EasuUIDemoTree.a ...

  2. Jquery EasyUI Combotree和 EasyUI tree展开所有父节点和获取完整路径

    Jquery EasyUI Combotree展开所有父节点 Jquery EasyUI Combotree获取树完整路径 Jquery EasyUI tree展开所有父节点 Jquery EasyU ...

  3. Jquery EasyUI Combotree根据选中的值展开所有父节点

    Jquery EasyUI Combotree根据选中的值展开所有父节点  Jquery EasyUI Combotree 展开父节点, Jquery EasyUI Combotree根据子节点选中的 ...

  4. Jquery EasyUI Combotree 初始化赋值

    Jquery EasyUI Combotree 初始化赋值 ================================ ©Copyright 蕃薯耀 2018年5月7日 https://www. ...

  5. Jquery EasyUI Combotree只能选择叶子节点且叶子节点有多选框

    Jquery EasyUI Combotree只能选择叶子节点且叶子节点有多选框 Jquery EasyUI Combotree单选框,Jquery EasyUI Combotree只能选择叶子节点 ...

  6. easyui combotree不让父级选中

    easyui combotree不让父级选中? <ul id="combotree"></ul> $(function () { $("#comb ...

  7. 表单(上)EasyUI Form 表单、EasyUI Validatebox 验证框、EasyUI Combobox 组合框、EasyUI Combo 组合、EasyUI Combotree 组合树

    EasyUI Form 表单 通过 $.fn.form.defaults 重写默认的 defaults. 表单(form)提供多种方法来执行带有表单字段的动作,比如 ajax 提交.加载.清除,等等. ...

  8. easyui combotree 异步树 前端写法js

    简要说下使用场景: combotree下拉框第一次加载时,请求一个接口,页面上展示顶层节点们(可以理解为最顶层的节点,比如所有的一级公司): 当点击其中一个节点前面的小三角展开时,再次请求服务器接口( ...

  9. EasyUI Combotree只选择叶子节点

    EasyUI Combotree的方法拓展自Combo和Tree.而Tree有一个onBeforSelect事件来帮助我们实现只选择叶子节点的功能. Tree事件需要 'node' 参数,它包括下列属 ...

  10. easyui combotree下拉框多选赋值

    发现jquery.easyui.min.js 1.3.4版本的用setValues给多选下拉框赋值不成功,只能用1.3.1版本的 Html代码: <input id="ProductL ...

随机推荐

  1. EF 连接sql2000

    正常连接会提示版本低 可以先用ef连接高版本的sql然后新建好EDMX文件后,在右键xml方式打开,把ProviderManifestToken="2008" 改为2000 然后再 ...

  2. SQL Server出现错误: 4014

    SQL Server出现错误: 4014 线下的测试机器老是报错,从errorlog里看到大量的4014错误 A fatal error occurred , output error: ). 错误: ...

  3. 2013年度IT博客大赛跻身10强

    2013年12月26日,由51CTO独家举办的2013年度IT博客大赛圆满落幕,荣幸跻身10强[http://fellow.51cto.com/art/201312/425528.htm],首先感谢各 ...

  4. Some practices to write better C#/.NET code(译)

    C#(.NET)中有关编码的一些建议,原文地址:http://www.codeproject.com/Articles/539179/Some-practices-to-write-better-Cs ...

  5. CVTE实习求职经历

    今天,听到有好多同学最近要去面试CVTE这家企业,于是呢,准备将自己的经历写上来,给大家一个参考,希望能够大家一次帮助. 一.整体感觉 首先呢,先讲一下我个人对这家企业的整体感觉吧. 1. 第一次 对 ...

  6. VVDocumenter 使用

    函数说明文档插件下载链接 https://github.com/onevcat/VVDocumenter-Xcode 下载后,直接运行项目 升级Xcode后可能不能再次使用,需要做一些处理从Xcode ...

  7. PHP 知识点

    __tostring()     注:能够直接输出对象 class Ren { public $name; function Run() { echo "跑"; } functio ...

  8. 我的SQL总结---未完待续

    我的SQL总结---未完待续 版权声明:本文为博主原创文章,未经博主允许不得转载. 总结: 主要的SQL 语句: 数据操作(select, insert, delete, update) 访问控制(g ...

  9. php ajax 交互

    html 页面 <body> <button id="oBtn">点击我</button> <script type="text ...

  10. JAVA基础-输入输出:1.编写TextRw.java的Java应用程序,程序完成的功能是:首先向TextRw.txt中写入自己的学号和姓名,读取TextRw.txt中信息并将其显示在屏幕上。

    1.编写TextRw.java的Java应用程序,程序完成的功能是:首先向TextRw.txt中写入自己的学号和姓名,读取TextRw.txt中信息并将其显示在屏幕上. package Test03; ...