easyui的异步tree加载

这是小编前段时间看孙宇老师的easyui的讲解视频记录下来的一个异步树加载的部分代码
--加载所需要的实体类,tree模型
package com.aaa.easyuiModel;

import java.util.List;
import java.util.Map;

/**
 * easyui使用的tree模型
 * 
 * @author 孙宇
 * 
 */
public class EasyuiTreeNode implements java.io.Serializable {

private String id;
private String text;// 树节点名称
private String iconCls;// 前面的小图标样式
private Boolean checked = false;// 是否勾选状态
private Map<String, Object> attributes;// 其他参数
private List<EasyuiTreeNode> children;// 子节点
private String state = "open";// 是否展开(open,closed)

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 Boolean getChecked() {
return checked;
}

public void setChecked(Boolean checked) {
this.checked = checked;
}

public Map<String, Object> getAttributes() {
return attributes;
}

public void setAttributes(Map<String, Object> attributes) {
this.attributes = attributes;
}

public List<EasyuiTreeNode> getChildren() {
return children;
}

public void setChildren(List<EasyuiTreeNode> children) {
this.children = children;
}

public String getState() {
return state;
}

public void setState(String state) {
this.state = state;
}

public String getIconCls() {
return iconCls;
}

public void setIconCls(String iconCls) {
this.iconCls = iconCls;
}

}


--加载节点控制方法
public  void findPoliceTree(Policemenu menu,HttpServletResponse response) {
List<Policemenu> findPoliceByPidList = policemenuBizImp.findPoliceByPid(menu);  
--jsp页面会自动往             后台传对应的父节点的值,第一次传入的时候父节点为null,按照父节点查询出来放到 findPoliceByPidList 
List<EasyuiTreeNode> tree = new  ArrayList<EasyuiTreeNode>();  --定义一个list集合用来装获取节点信             息
for (Policemenu policemenu : findPoliceByPidList) {
EasyuiTreeNode n= new  EasyuiTreeNode();       --循环实例化一个节点
n.setId(policemenu.getId());                   --把从数据库获取的节点的ID放入
n.setText(policemenu.getText());               --
把从数据库获取的节点的名称放入
if(policemenuBizImp.countChildren(policemenu.getId())>0){ --判断这个节点是否是最后一层节                点,如果是,状态改为close(默认为open)
n.setState("closed");    
              
}
tree.add(n);      --循环把节点放入数组
}
System.out.println(tree.toString());
String tree1 = JSON.toJSONString(tree);
    -- 转换成JSON传出
response.setContentType("application/json;charset=utf-8");  --编码格式
PrintWriter w = null;   
try {
w = response.getWriter();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
w.write(tree1);      --写到前台
}



前台jsp 页面只需要一个url
                              $('#tt').tree({    
     url: 'policeTreeController/findPoliceTree.do', 
    onClick: function(node){
$('#ZGGAJGNAME').val(node.text); // 在用户点击的时候显示
$('#px').hide();
}
}); 

猜你喜欢

转载自blog.csdn.net/a_long_123/article/details/78060026