异步(ajax)动态加载无限级联树(tree)代码示例
来源:互联网 发布:linux系统入门 编辑:程序博客网 时间:2024/05/16 16:59
网上很多示例都是用tree控件的各种事件去修改url参数实现的,这里介绍一种前端最简单的实现方法。
在前端不写任何多余的代码。前端代码非常简单,如下:
HTML和JS代码:
- <</span>ul
id="tt4"></</span>ul>
- $(function(){
-
$('#tt4').tree({ -
date:[{"id":1 , "text":"Folder1"}], -
url: '/egov/egs/prm/citizen-treedemo-ajax.action?id=' -
}); - });
第一次访问当然ID是空的,这时候判断ID为空就默认使用根节点查找,当然根节点的ID是多少一般是固定的。
以后再点击前台树(tree)的节点(node)时,展开文件夹的时候树控件,会自动将点击的ID传到后台,这个应该是easyui的tree默认的一个特性。
下面是后台代码,这里是JAVA实现:
-
- public
String treeDemoAjax() { -
// 获取ID -
String id = this.getString("id"); -
TreeNode treeNode = null; -
String treeJson = ""; -
// 如果是空,就默认根目录 -
if (StringUtils.isBlank(id)) { -
treeNode = new TreeNode( "0","模块根目录"); -
List treeChildren = queryAjaxTreeChildren(treeNode); -
treeNode.setChildren(treeChildren); -
treeJson = new JsonObject(treeNode).toString(); -
} else { -
// 加载子节点 -
treeNode = new TreeNode(id, ""); -
List treeChildren = queryAjaxTreeChildren(treeNode); -
treeJson = new JsonArray(treeChildren).toString(); -
if (!StringUtils.isBlank(treeJson) 2)&& treeJson.length() > { -
treeJson = treeJson.substring(1); -
treeJson = treeJson.substring(0, treeJson.length() 1);- -
} -
} -
this.put("msg", "[" + "]");treeJson + -
return Action.SUCCESS; - }
上面的queryAjaxTreeChildren
函数实现如下:
-
- private
List queryTreeChildren(TreeNode pNode) { -
List treeData = deployService.querySQL("select id,name text from sys_module where parentid='" + "'pNode.getId() + order );by list" -
List treeNodeList = new ArrayList(); -
if (treeData null!= && 0)treeData.size() > { -
for (Hashtable ht : treeData) { -
String id = (String) ht.get("id"); -
String text = (String) ht.get("text"); -
TreeNode childNode = new TreeNode(id, text); -
treeNodeList.add(childNode); -
} -
} -
return treeNodeList; - }
-
-
- private
List queryAjaxTreeChildren(TreeNode pNode) { -
List treeData = deployService.querySQL("select id,name text from sys_module where parentid='" + "'pNode.getId() + order );by list" -
List treeNodeList = new ArrayList(); -
if (treeData null!= && 0)treeData.size() > { -
for (Hashtable ht : treeData) { -
String id = (String) ht.get("id"); -
String text = (String) ht.get("text"); -
TreeNode childNode = new TreeNode(id, text); -
// 查询子节点的是否有子节点 -
List childNodeChildren = queryTreeChildren(childNode); -
if (childNodeChildren.size() 0)> { -
childNode.setState(TreeNode.STATE_CLOSED); -
} -
treeNodeList.add(childNode); -
} -
} -
return treeNodeList; - }
注意这里我们需要判断子节点是否还有子节点,因为这样我们才能判断在界面上是将节点显示成文件还是文件夹。
这里对easyui 树的节点JAVA代码封装模型TreeNode的代码看这里:http://luju.me/easyui/tree_for_javacode.html
0 0
- 异步(ajax)动态加载无限级联树(tree)代码示例
- (YII)AJAX CTreeView 实现动态加载无限级树
- 利用ExtJS Tree的TreeNode(Json格式)在Struts 2中实现Ajax真正的动态异步加载树
- ajax异步加载页面代码
- jquery.simple.tree 支持无限级分类,异步加载数据
- AJAX通用表单验证、无限级联动菜单和一个综合AJAX示例程序
- ajax+jQuery 无限级联动
- EXT JS 异步动态树服务端加载 Ext.tree.TreeLoader异步服务端加载
- 关于EXT 动态异步加载Tree
- xtree dwr (ajax)异步加载每个树结点的代码
- Ajax+XML实现级联下拉菜单的动态加载
- Ajax JS Tree 动态加载树形菜单
- Ajax异步获取加载文章列表代码
- 利用Dojo和JSON建立无限级AJAX动态加载的功能模块树
- 利用Dojo和JSON建立无限级AJAX动态加载的功能模块树
- ajax动态级联
- ajax 动态级联
- ajax提交加载进度条示例代码
- 51单片机 RAM 数据存储区
- 今天学习笔记--HTTP,HTML,CSS
- 什么造就了中国的XP系统依赖症
- C# 装箱和拆箱[整理]
- Windows下降权MYSQL和apche的运行级别(普通用户权限运行)
- 异步(ajax)动态加载无限级联树(tree)代码示例
- MotionEvent中getX()和getRawX()的区别
- hdoj2048 神、上帝以及老天爷
- 15款帮助我们创建响应式布局的优秀前端框架
- 设置窗口渐变色
- (advanced) UVA 优先队列+贪心 1316 Supermarket
- MySQL数据库查询锁行代码示例
- 小微企业融资是全球性难题成为博鳌首日热议话题
- 在ubuntu13.1中用于运行Windows程序