【项目经验】EasyUI Tree
ITOO5.0开始了,我参加了伟大的基础系统,从整体上来说,基础系统有三个职能:
1、自己的核心职能——选课(公共选修课,专业选修课),课表;
2、为其他系统提供真实数据;
3、维护信息
而近两三天,我一直在和我的小伙伴东辉做我们的公共选修课。而这里面,我们遇到的第一个困难就是——树。
在之前的4.1,我们做的更多的是维护,而现在,我们要做的是开发!所以自己开发一棵树对于没有接触过着的我来说,还是有一点难度的。可是功夫不负有心人,摸着石头过河,总算是有点效果。
分享:
在这里,我们用到的easyui tree,前台很简单,需要:
<ul id="tree"></ul>
这就够了,有一个可以接收后台数据的东西。
然后就是对 jquery.ztree.css和jquery.ztree.js引用,这些都是easyui封装好的,我们可以直接用,如有需要,可以单独学习。
再就是对这个树的定义:
/*
*定义树:
*/
var tree = {
/**
* 所有的初始化的操作
*/
pFunction: {
zTree: '',
setting:
{
check: {
enable: true,
chkboxType: { "Y": "ps", "N": "ps" }
},
data:
{
key:
{
name: "Name"
},
simpleData:
{
enable: true,
idKey: "ID",
pIdKey: "PID",
rootPId: "null"
}
}
},
//加载树的资源
loadTree: function () {
$.post("/SetCourse/QueryCollegeTree", { level: "本科" }, function (resourceInfo) {
$.fn.zTree.init($("#tree"), tree.pFunction.setting, resourceInfo);
});
},
}
};
再就是定义数据源了,也就是我们使用mvc里面的controller或者是别的数据来源了
listTree
foreach{ var item in listTree}
{
listTree listtree=new listTree();
listtree.id=item.id;
listtree.pid=item.pid;
listtree.name=item.name
listTree.Add(listtree);
}
这个只是简单的单表查询,还可以有两张表,其实只是吧单张表分开,也就是pid和id分开
两张表:
foreach{ var item in listTree}{
listTree listtree=new listTree();
listtree.id=item.id;
listtree.pid=item.pid;
listtree.name=item.name
listTree.Add(listtree);
foreach{ var item in listTree}
{
listTree listtree=new listTree();
listtree.id=item.id;
listtree.pid=item.pid;
listtree.name=item.name
listTree.Add(listtree);
}
listTree.Add(listtree);
}
曾经我以为还可以有三张表组合的树,但是事实证明,那样的话需要有严格的逻辑和思路,否则会出现一个特殊的bug
所以说,个人认为,简单点的话,我们就需要抽出第三表来存放这里的逻辑信息(如果这样实现,我们就要添加对第三张表的维护功能,酌情!),或者在表里面打上父类的外键,这样,在树的实现上,会简单很多!
总结:
一棵树,首先要有自己的viewmodel表实体;其次是自己的从属关系,即ID和PID;再是对封装好的js的调用;再再就是树的数据来源。
【项目经验】EasyUI Tree的更多相关文章
- Atitit.attilax的 case list 项目经验 案例列表
Atitit.attilax的 case list 项目经验 案例列表 1. Atian inputmethod 输入法3 2. Ati desktop engine桌面引擎3 3. Acc资金账户系 ...
- Jquery easyui Tree的简单使用
Jquery easyui Tree的简单使用 Jquery easyui 是jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻 ...
- Easyui tree 开启拖放后 在IE下 性能惨不忍睹
项目中加载一个树结构代码如下 //加载树 function LoadTree() { var url = "../Ajax/StationTree.ashx?showVirtual=1&qu ...
- easyui Tree模拟级联勾选cascadeCheck,节点选择,父节点自动选中,节点取消,父节点自动取消选择,节点选择,所有子节点全部选择,节点取消,所有子节点全部取消勾选
最近项目中用到easyui tree,发现tree控件的cascadeCheck有些坑,不像miniui 的tree控件,级联勾选符合业务需求,所以就自己重新改写了onCheck事件,符合业务需求.网 ...
- easyUI tree 自定义图标
文章转载自: https://blog.csdn.net/zhlantian/article/details/52913115 近期由于项目中需要使用easyui tree树形列表,并在系统中动态配置 ...
- 【EasyUI学习-2】Easyui Tree的异步加载
作者:ssslinppp 1. 摘要 2. tree的相关介绍 3. 异步加载tree数据,并实现tree的折叠展开 3.1 功能说明: 3.2 前台代码 3.3 后台代码 4. 其他 1 ...
- easyui tree扩展tree方法获取目标节点的一级子节点
Easyui tree扩展tree方法获取目标节点的一级子节点 /* 只返回目标节点的第一级子节点,具体的用法和getChildren方法是一样的 */ $.extend($.fn.tree.meth ...
- 数据网格和树-EasyUI Datagrid 数据网格、EasyUI Propertygrid 属性网格、EasyUI Tree 树、EasyUI Treegrid 树形网格
EasyUI Datagrid 数据网格 扩展自 $.fn.panel.defaults.通过 $.fn.datagrid.defaults 重写默认的 defaults. 数据网格(datagrid ...
- Jquery EasyUI Tree树形结构的Java实现(实体转换VO)
前一阵做的OA项目,有一个是组织架构的树,因为是分开做的,我做的是Controller和页面,其他组做的Service和Dao,因为之前一直没有商量页面用什么框架做比较好,导致,Dao层取出来的数据都 ...
随机推荐
- ffmpeg-20160628-git-bin.7z
ESC 退出 0 进度条开关 1 屏幕原始大小 2 屏幕1/2大小 3 屏幕1/3大小 4 屏幕1/4大小 S 下一帧 [ -2秒 ] +2秒 ; -1秒 ' +1秒 下一个帧 -> -5秒 f ...
- Js 旋转木马 轮播
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 【leetcode】Reverse Bits(middle)
Reverse bits of a given 32 bits unsigned integer. For example, given input 43261596 (represented in ...
- Sql order by 和 group BY一起使用时需要注意
ORDER BY 子句中的列必须包含在聚合函数或 GROUP BY 子句中. slect * from table group by class,id order by id slect * from ...
- php数据访问(修改)
修改:跟添加相似,需要显示默认值 先嵌入php代码 查询数据库 $code = $_GET["c"]; $db = new MySQLi("localhost" ...
- Jquery如何判断Radiobutton是否选中
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Target runtime Apache Tomcat v6.0 is not defined.错误解决方法
一.背景 最近在使用本地的tomcat进行运行项目的时候,发现出现了如题所述的问题.不知道什么原因,经过努力解决了该问题. 二.解决步骤 右击项目---选择属性---选择targeted runtim ...
- python基础——使用元类
python基础——使用元类 type() 动态语言和静态语言最大的不同,就是函数和类的定义,不是编译时定义的,而是运行时动态创建的. 比方说我们要定义一个Hello的class,就写一个hello. ...
- UbuntuLinux安装Mysql
1.安装Mysql5.7 方法:手动安装5.7 One: $ wget http://dev.mysql.com/get/mysql-apt-config_0.6.0-1_all.deb 下载 ...
- Lattice 的 DDR IP核使用调试笔记之DDR 的 仿真
—— 远航路上ing 整理于 博客园.转载请标明出处. 在上节建立完工程之后,要想明确DDR IP的使用细节,最好是做仿真.然后参考仿真来控制IP 核. 仿真的建立: 1.在IP核内的以下路径找到以下 ...