Easyui tree 从数据库中动态加载数据

来源:互联网 发布:龙腾世纪3优化补丁 编辑:程序博客网 时间:2024/04/29 22:09

用到easyui,顺便做了个关于easyui  tree 加载数据的DEMO,比较简单。

先看样式



废话少说,直接上代码。

1. 前端html代码(就是这么简单)

 <div region="west" class="west" title="导航菜单">    <ul id="tree"></ul>  </div>

2. js脚本代码   主要是在页面初始化的时候,去后台请求数据,然后组装成tree所需要的json格式

<span style="white-space:pre"></span>$(function () {            // 实例化树菜单    $("#tree").tree({    url:'getNodesById.do?id=1',//请求路径,id为根节点的id    onLoadSuccess:function(node,data){     var tree = $(this);     if(data){     $(data).each(function(index,d) {                             if (this.state=='closed') {                                 tree.tree('expandAll');                             }                         });     }    }        });    
3. 数据库设计

其中id为表id,pid为父id,text为节点名称,attributes为其他(比如路径)

4. 后台请求代码

这里使用的是springmvc来实现的,其他的也是同理

处理json是需要自己去拼接成你需要的目录json数据格式。先拼接根节点,然后再循环遍历子节点,如果子节点还存在子节点,就会一直去遍历。

<span style="white-space:pre"></span>/** * 初始化所有的树形节点 */@RequestMapping(value="/getNodesById")public void getNodesById(int id ,HttpServletResponse response){System.out.println("kaishi");String str ="";StringBuilder json = new StringBuilder();// 获得根节点Tree treeRoot = IopDataService.getNodeById(id);// 拼接根节点json.append("[");json.append("{\"id\":" +String.valueOf(treeRoot.getId()));         <span style="white-space:pre"></span>json.append(",\"text\":\"" +treeRoot.getText() + "\"");         <span style="white-space:pre"></span>json.append(",\"state\":\"open\"");// 获取根节点下的所有子节点List<Tree> treeList = IopDataService.getNodesById(id);// 遍历子节点下的子节点if(treeList!=null && treeList.size()!=0){json.append(",\"children\":[");for (Tree t : treeList) {json.append("{\"id\":" +String.valueOf(t.getId()));             json.append(",\"text\":\"" +t.getText() + "\"");             json.append(",\"state\":\"open\""); // 该节点有子节点// 设置为关闭状态,而从构造异步加载treeList<Tree> tList = IopDataService.getNodesById(t.getId());if(tList!=null && tList.size()!=0){// 存在子节点 json.append(",\"children\":["); json.append(dealJsonFormat(tList));// 存在子节点的都放在一个工具类里面处理了 json.append("]");}json.append("},");}str = json.toString();str = str.substring(0, str.length()-1);str+="]}]";}try {System.out.println("输出json数据"+str);response.getWriter().print(str);} catch (IOException e) {e.printStackTrace();}}

所使用到的实体类和工具类方法

Tree.java

public class Tree {private int id;// 表idprivate int pid;// 父节点idprivate String text;// 节点内容private String attributes;// 请求路径public int getId() {return id;}public void setId(int id) {this.id = id;}public int getPid() {return pid;}public void setPid(int pid) {this.pid = pid;}public String getText() {return text;}public void setText(String text) {this.text = text;}public String getAttributes() {return attributes;}public void setAttributes(String attributes) {this.attributes = attributes;}}
工具类

/** * 处理数据集合,将数据集合转为符合格式的json * @param tList 参数 * @return json字符串 */public String dealJsonFormat(List<Tree> tList){StringBuilder json = new StringBuilder();for (Tree tree : tList) {json.append("{\"id\":" +String.valueOf(tree.getId()));             json.append(",\"text\":\"" +tree.getText() + "\"");             json.append(",\"state\":\"closed\"");             json.append("},");}String str = json.toString();str = str.substring(0, str.length()-1);System.out.println("---------"+str);return str;}

以上就是所有的代码了,代码没有优化,还有点小细节没有处理,但能生成树。大家看到就是一层一层的拼接的,其实用集合直接转也行,不过你需要将集合和封装好,可以定义一个实体或多个实体类,最里层的实体定义tree的属性,外层定义tree的一些属性和该节点所对应的数据集合,最外层定义为总的实体,一次类推,类似于bean实体包含一个List<bean2>,bean2中包含List<bean3>等,最后转为JSONObject也行。



0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 机连WLAN网速慢怎么办 会声会影卸载后无法重新安装怎么办 电视空间不足无法卸载怎么办 堡垒之夜下载慢怎么办 手机网盘下载速度慢怎么办插件 笔记本电脑显示连接不可用怎么办 蓝魔手机充电慢怎么办 360f4手机充电慢怎么办 vivo卡了怎么办小窍门 白色衣服用84泡后变黄怎么办 用祛斑霜脱皮了怎么办 用祛斑霜脸一直蜕皮怎么办 吃热的就流鼻涕怎么办 键盘qaz失灵其他都没事怎么办 时时彩代理抓了怎么办 6p升级ios11卡顿怎么办 微信弄没了又换号了怎么办 快手账号异常请去激活怎么办 九游账号被转移怎么办 绝地求生刺激战场闪退怎么办 qq回执编号忘了怎么办 电脑开机要用户名和密码怎么办 电脑忘记用户名和密码怎么办 微信账号密码忘了怎么办 开发者账号密保忘记怎么办 华为账号忘记密保问题怎么办 fiyme账号忘记密保怎么办 id忘了密保问题怎么办 vivo账号密码忘记了怎么办 步步高账号密码忘了怎么办 步步高手机账号密码忘了怎么办 康佳电视通行证忘了怎么办 尚游通行证忘了怎么办 深圳免限行通行证忘了截图怎么办 电脑把管理员账号删除了怎么办 uc新浪加载失败怎么办红包还 微信忘记账号和密码怎么办 苹果手机忘记id密码怎么办 购买游戏账号被找回怎么办 交易猫账号忘了怎么办 爱奇艺账号怎么修改不了密码怎么办