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的更多相关文章

  1. Atitit.attilax的 case list 项目经验 案例列表

    Atitit.attilax的 case list 项目经验 案例列表 1. Atian inputmethod 输入法3 2. Ati desktop engine桌面引擎3 3. Acc资金账户系 ...

  2. Jquery easyui Tree的简单使用

    Jquery easyui Tree的简单使用 Jquery easyui 是jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻 ...

  3. Easyui tree 开启拖放后 在IE下 性能惨不忍睹

    项目中加载一个树结构代码如下 //加载树 function LoadTree() { var url = "../Ajax/StationTree.ashx?showVirtual=1&qu ...

  4. easyui Tree模拟级联勾选cascadeCheck,节点选择,父节点自动选中,节点取消,父节点自动取消选择,节点选择,所有子节点全部选择,节点取消,所有子节点全部取消勾选

    最近项目中用到easyui tree,发现tree控件的cascadeCheck有些坑,不像miniui 的tree控件,级联勾选符合业务需求,所以就自己重新改写了onCheck事件,符合业务需求.网 ...

  5. easyUI tree 自定义图标

    文章转载自: https://blog.csdn.net/zhlantian/article/details/52913115 近期由于项目中需要使用easyui tree树形列表,并在系统中动态配置 ...

  6. 【EasyUI学习-2】Easyui Tree的异步加载

    作者:ssslinppp       1. 摘要 2. tree的相关介绍 3. 异步加载tree数据,并实现tree的折叠展开 3.1 功能说明: 3.2 前台代码 3.3 后台代码 4. 其他 1 ...

  7. easyui tree扩展tree方法获取目标节点的一级子节点

    Easyui tree扩展tree方法获取目标节点的一级子节点 /* 只返回目标节点的第一级子节点,具体的用法和getChildren方法是一样的 */ $.extend($.fn.tree.meth ...

  8. 数据网格和树-EasyUI Datagrid 数据网格、EasyUI Propertygrid 属性网格、EasyUI Tree 树、EasyUI Treegrid 树形网格

    EasyUI Datagrid 数据网格 扩展自 $.fn.panel.defaults.通过 $.fn.datagrid.defaults 重写默认的 defaults. 数据网格(datagrid ...

  9. Jquery EasyUI Tree树形结构的Java实现(实体转换VO)

    前一阵做的OA项目,有一个是组织架构的树,因为是分开做的,我做的是Controller和页面,其他组做的Service和Dao,因为之前一直没有商量页面用什么框架做比较好,导致,Dao层取出来的数据都 ...

随机推荐

  1. ACM/ICPC 之 数论-斐波拉契●卢卡斯数列(HNNUOJ 11589)

    看到这个标题,貌似很高大上的样子= =,其实这个也是大家熟悉的东西,先给大家科普一下斐波拉契数列. 斐波拉契数列 又称黄金分割数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.… ...

  2. MySQL\MariaDB 多线程复制初探

    背景: MariaDB 在10.0.5就已经支持了并行复制的功能,即从库多线程复制的功能.MySQL最先在5.6.3中支持.目前暂时没有用MySQL5.6的版本,故暂时只对MariaDB进行一些说明, ...

  3. ffmpeg-20160325-snapshot-static-bin

    ffmpeg-20160325-snapshot-static.7z ./configure \ --enable-static \ --disable-shared \ --enable-gpl \ ...

  4. nyoj19_排列

    擅长排列的小明 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 小明十分聪明,而且十分擅长排列计算.比如给小明一个数字5,他能立刻给出1-5按字典序的全排列,如果你想 ...

  5. C Primer Plus_第三章_数据和C_复习题与编程练习

    Review long代替int类型变量的原因是什么? 在您的系统中,long可以容纳比int更大的数:如果您确实需要处理更大的值,那么使用一种在所有系统上都保证至少是32位的类型会使程序的可移植性更 ...

  6. NIS域配置详解

    一.前期准备1.1 NIS 简介NIS,英文的全称是network information service,也叫yellow pages.在Linux中,NIS是一个基于RPC的client/serv ...

  7. 【XLL API 函数】 xlGetInst

    返回正在调用 DLL 的 Excel 实例的实例句柄. 原型 Excel4(xlGetInst, LPXLOPER pxRes, 0); /* returns low part only */ Exc ...

  8. python学习 登陆验证

    #!/usr/bin/env python #-*- coding=utf-8 -*- #----------------导入模块------------------------------ impo ...

  9. ios block中引用self

    __block __weak typeof(self) tmpSelf = self; ^(){ tmpSelf...... }

  10. CUDA中并行规约(Parallel Reduction)的优化

    转自: http://hackecho.com/2013/04/cuda-parallel-reduction/ Parallel Reduction是NVIDIA-CUDA自带的例子,也几乎是所有C ...