EasyUI Editable Tree详解编程语言
2023-06-13 09:20:42 时间
效果如图:
Create Tree
ul id="tt" /ul $(#tt).etree({ url: tree_data.json, createUrl: ..., updateUrl: ..., destroyUrl: ..., dndUrl: ... });
设置url,createUrl,updateUrl,destroyUrl,dndUrl属性来自动同步数据到服务器
url: 返回树的数据
createUrl: 当创建一个新的节点,tree将传入名为parentId即表示父节点ID的参数
updateUrl: 当更新一个节点,将传入id和text参数到服务器
destroyUrl: 当销毁一个节点,传入id参数
dndUrl: 当拖放节点,将传入以下参数到服务器。ID:被拖动的ID,targetId:被拖至到的ID
Demo:
body a href="#" Create /a a href="#" Edit /a a href="#" Destroy /a ul id=tt /ul /body
script type="text/javascript" $(#tt).etree({ url: treeLoad.action, createUrl: treeCreate.action, updateUrl: treeUpdate.action, destroyUrl: treeDestroy.action, dndUrl: treeDnd.action }); /script
struts.xml
!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd" struts package name="tree_json" extends="json-default" action name="treeLoad" method="treeLoad" result type="json" param name="root" treeNodes /param /result /action action name="treeCreate" method="treeCreate" result type="json" param name="root" treeNodes /param /result /action action name="treeUpdate" method="treeUpdate" result type="json" param name="root" treeNodes /param /result /action action name="treeDestroy" method="treeDestroy" result type="json" param name="root" treeNodes /param /result /action action name="treeDnd" method="treeDnd" result type="json" param name="root" treeNodes /param /result /action /package /struts
需要封装对象Tree
public class TreeNode { private static final long serialVersionUID = 1L; private String id; // 节点id private String text; // 显示的节点文本 private String state = "open"; // 节点状态,open或者 closed,默认是 open private boolean checked; // 指明检查节点是否选中. public TreeNode() { public TreeNode(String id, String text, String state, boolean checked) { this.id = id; this.text = text; this.state = state; this.checked = checked; //省略setXXX(),getXXX() }
Action方法实现
/** * 查询数据使用JDBC进行操作 public class TreeAction { private List TreeNode treeNodes = new ArrayList TreeNode // 返回的JSON数据 private String id; // 树组件使用的ID private String parentId; // 树父ID private String text; // 显示文本 private String targetId; // 拖拽目标ID /** * 树展现 * @return public String treeLoad() { Statement sta = null; ResultSet rs = null; try { Connection conn = ConnectionManager.getConnection(); sta = conn.createStatement(); String sql = ""; if (id == null) { // 如果id为null或0则是根节点 sql = "select * from easyui_tree where parentid = or parentid = 0"; } else { // 查询下面的子节点 sql = "select * from easyui_tree where parentid = " + id; rs = sta.executeQuery(sql); while (rs.next()) { String id = rs.getString("id"); String name = rs.getString("name"); TreeNode node = new TreeNode(); node.setId(id); node.setText(name); node.setChecked(false); // 判断是否有子节点,如果有则closed 否则open if (isChildrenNode(id)) { node.setState("closed"); } else { node.setState("open"); treeNodes.add(node); // 关闭所有资源 ConnectionManager.closeAll(rs, sta, conn); } catch (SQLException e) { e.printStackTrace(); return "success"; /** * 创建tree * @return public String treeCreate() { Statement sta = null; ResultSet rs = null; try { Connection conn = ConnectionManager.getConnection(); sta = conn.createStatement(); //ID为自增,无需插入 String sql = "insert into easyui_tree(NAME,parentid) values(," + parentId + ")"; sta.execute(sql); // 关闭所有资源 ConnectionManager.closeAll(rs, sta, conn); } catch (SQLException e) { e.printStackTrace(); return "success"; /** * 修改tree * @return public String treeUpdate() { Statement sta = null; ResultSet rs = null; try { Connection conn = ConnectionManager.getConnection(); sta = conn.createStatement(); String sql = "update easyui_tree set name = " + text + " where id = " + id + ""; sta.executeUpdate(sql); // 关闭所有资源 ConnectionManager.closeAll(rs, sta, conn); } catch (SQLException e) { e.printStackTrace(); return "success"; /** * 删除tree * @return public String treeDestroy() { Statement sta = null; ResultSet rs = null; try { Connection conn = ConnectionManager.getConnection(); sta = conn.createStatement(); String sql = "delete from easyui_tree where id = " + id + ""; sta.executeUpdate(sql); // 关闭所有资源 ConnectionManager.closeAll(rs, sta, conn); } catch (SQLException e) { e.printStackTrace(); return "success"; /** * 拖拽 * @return public String treeDnd() { Statement sta = null; ResultSet rs = null; try { Connection conn = ConnectionManager.getConnection(); sta = conn.createStatement(); //将parentid改为拖拽至目标ID String sql = "update easyui_tree set parentid = " + targetId + " where id = " + id + ""; sta.executeUpdate(sql); // 关闭所有资源 ConnectionManager.closeAll(rs, sta, conn); } catch (SQLException e) { e.printStackTrace(); return "success"; /** * 判断是否有子节点 * @return public boolean isChildrenNode(String id) { Boolean flag = false; Statement sta = null; ResultSet rs = null; try { Connection conn = ConnectionManager.getConnection(); sta = conn.createStatement(); String sql = "select * from easyui_tree where parentid = " + id; rs = sta.executeQuery(sql); while (rs.next()) { flag = true; // 关闭所有资源 ConnectionManager.closeAll(rs, sta, conn); } catch (SQLException e) { e.printStackTrace(); return flag; //省略setXXX(),getXXX()方法 }
获取Connection的ConnectionManager封装类参见blog.ytso.com/article/details/38818449
数据库脚本
create database easyui; use easyui; CREATE TABLE easyui_tree( id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, NAME VARCHAR(10), parentid VARCHAR(10) insert into easyui_tree values(1,北京,0); insert into easyui_tree values(2,上海,0); insert into easyui_tree values(3,深圳,0); insert into easyui_tree values(4,广州,0); insert into easyui_tree values(5,海淀,1); insert into easyui_tree values(6,朝阳,1); insert into easyui_tree values(7,昌平,1); insert into easyui_tree values(8,西二旗,5); insert into easyui_tree values(9,上地,5);
项目源码下载:http://download.csdn.net/detail/blog.ytso.com/7856545
作者:blog.ytso.com
出处:blog.ytso.com/article/details/38846521
14515.html
cjavaxml相关文章
- easyUI的dialog怎么设置scrolltop每次打开恢复初始位置详解编程语言
- easyui加载成功后,读取某一行的数据详解编程语言
- easyUI的不同部门查看不同的信息sql语句和总结详解编程语言
- Easyui前端、JAVA后台 上传附件详解编程语言
- easyui formatter实现超链接效果详解编程语言
- EasyUI tree 实现点击展开/折叠详解编程语言
- easyui struts后台实现tree返回json数据详解编程语言
- EasyUI combobox 多选及回显赋值详解编程语言
- EasyUI combobox 加载JSON数据详解编程语言
- Easyui控制combotree只能选择叶子节点详解编程语言
- EasyUI实现异步加载tree(整合Struts2)详解编程语言
- jQuery EasyUI实现关闭全部tabs详解编程语言
- easyui datagrid自定义操作列详解编程语言
- easyui tree 判断是否是叶子节点详解编程语言
- easyui combobox 动态加载数组数据详解编程语言
- Easyui学习整理笔记详解编程语言
- EasyUI DataGrid实现单选且选择后可取消选择详解编程语言