JSP代码:
<script type="text/javascript" src="../jquery-1.4.4.js"></script>
<script type="text/javascript" src="../jquery.easyui.min.js"></script>
<link rel="stylesheet" type="text/css" href="../themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="../themes/icon.css">
<link rel="stylesheet" type="text/css" href="../easyui.css">
<script type="text/javascript">
$(function(){//页面加载时调用方法3
$('#cc').combotree('loadData', [{id:1,text:'City',children:[{id:11,text:'Wyoming',children:[{id:111,text:'Albin'},{id:112,text:'Canon'},{id:113,text:'Egbert'}]},{id:11,text:'Wyoming',state:'closed',children:[{id:121,text:'Bellingham'},{id:122,text:'Chehalis'},{id:123,text:'Ellensburg'},{id:124,text:'Monroe'}]}]}]);
});
</script>
<body>
<h2>ComboTree Actions</h2>
<p>Click the buttons below to perform actions</p>
<div style="margin:20px 0">
<a href="javascript:void(0)" class="easyui-linkbutton" οnclick="getValue()">GetValue</a>
<a href="javascript:void(0)" class="easyui-linkbutton" οnclick="setValue()">SetValue</a>
<a href="javascript:void(0)" class="easyui-linkbutton" οnclick="disable()">Disable</a>
<a href="javascript:void(0)" class="easyui-linkbutton" οnclick="enable()">Enable</a>
</div>
<input id="cc" style="width:200px;">
<script type="text/javascript">
$('#cc').combotree( {
//选择树节点触发事件
onSelect : function(node) {
//返回树对象
var tree = $(this).tree;
//选中的节点是否为叶子节点,如果不是叶子节点,清除选中
var isLeaf = tree('isLeaf', node.target);
if (!isLeaf) {
//清除选中
$('#cc').combotree('clear');
alert("该节点不可被选中")
}
}
});
function getValue(){
var val = $('#cc').combotree('getValue');
alert(val);
}
function setValue(){
$('#cc').combotree('setValue', '122');
}
function disable(){
$('#cc').combotree('disable');
}
function enable(){
$('#cc').combotree('enable');
}
</script>
后台代码:
package com.sgepm.easywork.comm.bean; import javax.persistence.Column; import javax.persistence.Table; @Table public class TreeEntity implements java.io.Serializable { private static final long serialVersionUID = 1571960562503090861L; private String id; private String text; private String pid; public TreeEntity() { super(); } @Column(name = "ID", nullable = false, length = 64) public String getId() { return id; } public void setId(String id) { this.id = id; } @Column(name = "TEXT", nullable = false, length = 64) public String getText() { return text; } public void setText(String text) { this.text = text; } @Column(name = "PID", nullable = false, length = 64) public String getPid() { return pid; } public void setPid(String pid) { this.pid = pid; } }
import java.util.List; import java.util.Map; public class TreeModel { private String id; private String text; private List<TreeModel> children; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getText() { return text; } public void setText(String text) { this.text = text; } public List<TreeModel> getChildren() { return children; } public void setChildren(List<TreeModel> children) { this.children = children; } }
import java.util.ArrayList; import java.util.Arrays; import java.util.List; import net.sf.json.JSONArray; import com.sgepm.easywork.comm.bean.TreeEntity; import com.sgepm.easywork.comm.bean.TreeModel; /** * 辅助类,树形构建器 * * @author Nan * */ public class TreeBuilder { private String pid; //根节点id private List<TreeEntity> treeEntityList; //树实体 public TreeBuilder(String pid,List<TreeEntity> treeEntityList) { this.pid = pid; this.treeEntityList = treeEntityList; } /** * 获得JSON树 * @return */ public String getJsonTree() { JSONArray treeJson = JSONArray.fromObject(bulidTreeModel()); return treeJson.toString(); } /** * 构建树模型 * * @return */ public List<TreeModel> bulidTreeModel() { List<TreeModel> treeModels = new ArrayList<TreeModel>(); TreeEntity root = getRoot(); TreeModel treeModel = toTreeModel(root); this.buildChildModel(treeModel); treeModels.add(treeModel); return treeModels; } /** * 递归查找子节点 * * @param pid * @return */ private void buildChildModel(TreeModel treeModel) { List<TreeModel> childrenTreeModel = new ArrayList<TreeModel>(); List<TreeEntity> childrenTreeEntity = this.getChildren(treeModel.getId()); if (!childrenTreeEntity.isEmpty()) { for (TreeEntity treeEntity : childrenTreeEntity) { TreeModel model = toTreeModel(treeEntity); childrenTreeModel.add(model); buildChildModel(model); } } treeModel.setChildren(childrenTreeModel); } /** * 转换成树模型 * * @param treeEntity * @return */ private TreeModel toTreeModel(TreeEntity treeEntity) { TreeModel treeModel = new TreeModel(); treeModel.setId(treeEntity.getId()); treeModel.setText(treeEntity.getText()); return treeModel; } /** * 获取根节点 * * @return */ private TreeEntity getRoot() { for (TreeEntity treeEntity : treeEntityList) { if (treeEntity.getId().equals(pid)) { return treeEntity; } } return null; } /** * 获取全部子节点 * * @return */ private List<TreeEntity> getChildren(String pid) { List<TreeEntity> childOrgList = new ArrayList<TreeEntity>(); for (TreeEntity treeEntity : treeEntityList) { if (treeEntity.getPid().equals(pid)) { childOrgList.add(treeEntity); } } return childOrgList; } }