在上篇文章给大家介绍了jquery中EasyUI实现异步树,本文给大家介绍jquery easyui实现动态树。
首先是在jsp页面中引入相关的js文件
在body中加入流程列表,通过后天拼接json数据
具体内容请看下面代码详情吧。
首选在jsp页面中引入相关的js
<link rel="stylesheet" type="text/css" href="<%=path %>/css/jquery_easyui/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="<%=path %>/css/jquery_easyui/themes/icon.css">
<script type="text/javascript" src="<%=path %>/js/jquery_easyui/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="<%=path %>/js/jquery_easyui/jquery.easyui.min.js"></script>
添加script
<script>
$(function(){
$('#tt2').tree({
checkbox: false,
url: '<%=path%>/formconfig/loadWfNodes.do',
onBeforeExpand: function(node){
$('#tt2').tree('options').url = '<%=path%>/formconfig/loadWfNodes.do?wfId='+node.id;
}
});
});
</script>
在body中加入
<body>
<ul id="tt2">
<li state="closed" id='0'><span>流程列表</span></li>
</ul>
</body>
后台拼接json数据
package com.aegon_cnooc.oa.formconfig.action;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.aegon_cnooc.framework.base.action.BaseAction;
import com.aegon_cnooc.oa.formconfig.service.FormConfigService;
import com.aegon_cnooc.oa.ibatis.to.TuOafWfTO;
import com.aegon_cnooc.oa.ibatis.to.TuOafWfnodesTO;
import com.aegon_cnooc.util.StringUtil;
/**
* 加载流程下的节点的名称
* @Author: liuxinghui
* @Date: 2011-9-8
* @Version: 2.0
* @Despcrition:
*/
public class LoadWfNodesAction extends BaseAction{
private FormConfigService formConfigService;
public ActionForward executeAction(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
String wfId=request.getParameter("wfId");
String jsonstr = "[";
if(StringUtil.isNotEmpty(wfId)&&"0".equals(wfId)){
List wfList=formConfigService.findWf();
for(int i=0;i<wfList.size();i++){
TuOafWfTO wfTo=(TuOafWfTO)wfList.get(i);
jsonstr=jsonstr+
"{\n" +
" \"id\":"+wfTo.getWfid()+",\n" +
" \"text\":\"<a href='javaScript:void(0)' target='mainFrame'>"+wfTo.getWfname()+"</a>\",\n" +
" \"state\":\"closed\"\n" +
" },";
}
int end=jsonstr.length()-1;//去掉最后一个逗号
String json=jsonstr.substring(0,end);
json=json+"]";
response.setContentType("application/json;charset=gbk");
response.setCharacterEncoding("gbk");
PrintWriter pw = response.getWriter();
pw.write(json);
pw.flush();
}else{
List wfNodes=formConfigService.findWfNodesById(wfId);
for(int i=0;i<wfNodes.size();i++){
TuOafWfnodesTO wfNodesTo=(TuOafWfnodesTO)wfNodes.get(i);
jsonstr=jsonstr+
"{\n" +
" \"id\":"+wfNodesTo.getNodeid()+",\n" +
" \"text\":\"<a href='" + request.getContextPath()+
"/formconfig/loadGroupByWfIdAndNodeId.do?wfId="+wfId+"&nodeId="+wfNodesTo.getNodeid()+"' target='mainFrame'>"+wfNodesTo.getGenstepname()+"("+wfNodesTo.getNodeid()+")</a>\",\n" +
" \"state\":\"closed\"\n" +
" },";
}
int end=jsonstr.length()-1;//去掉最后一个逗号
String json=jsonstr.substring(0,end);
json=json+"]";
response.setContentType("application/json;charset=gbk");
response.setCharacterEncoding("gbk");
PrintWriter pw = response.getWriter();
pw.write(json);
pw.flush();
}
return null;
}
public void setFormConfigService(FormConfigService formConfigService) {
this.formConfigService = formConfigService;
}
}
下面一段代码是EasyUI Jquery 动态加载树,点击节点加载
<script type="text/javascript">
$(function() {
$(document).ready(function() {
$.post("./test/tree.action", {}, function(json) {
$("#tt").tree({
data : json.itemsList,
onClick : function(node) {
$.post("./test/tree.action", {
"id" : node.id
}, function(json) {
$('#tt').tree('append', {
parent : node.target,
data : json.data
});
}, "json");
}
});
}, "json");
});
});
</script>
</head>
<body>
<ul id="tt"></ul>
</body>