一:jsp 页面
<%@ page contentType="text/html; charset=UTF-8" language="java"
import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page import="com.luguang.model.*"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
<base href="<%=basePath%>">
<title>组织树</title>
<link rel="stylesheet" href="<%=basePath%>scripts/extjs/resources/css/ext-all.css" type="text/css"/>
<script type="text/javascript" src="<%=basePath%>scripts/extjs/ext-all.js"></script>
<script LANGUAGE="JavaScript">
Ext.require(['*']);
Ext.onReady(function(){
//分级异步加载节点实例
//定义数据模型
Ext.regModel("orgInfo0",{
fields:['orgId','text']
});
var myOrgStore=new Ext.data.TreeStore({
model:'orgInfo0',
nodeParam:'orgId',//指定节点参数名
proxy:{
type:'ajax',
url:'<%=basePath%>/org/showOrgTreeExtJsTree',
reader:'json'
},
autoLoad:true,
root:{
text:'${sessionScope.parOrgName}',
id:'org_${sessionScope.parOrgId}'
}
});
function tree_itemclick0(node,event){
var nodeId=event.data.id;
var nodeText=event.data.text;
if(nodeId.indexOf("org")>=0){
nodeId=nodeId.substring(4,nodeId.length);
$("#orgName0").val(nodeText);
$("#orgId0").val(nodeId);
}
}
var orgPointTree=Ext.create('Ext.tree.Panel',{
renderTo:'pointOrgTree',
dataIndex:'text',
sortable:true,
store:myOrgStore,
rootVisible:true,
listeners:{
itemclick:tree_itemclick0,
afterrender:function(orgPointTree){
setTimeout(function(){var rootNode=orgPointTree.getRootNode(); rootNode.expand(); },10);
}
}
});
});
</script>
</head>
<body style="border-bottom-width:thin">
<div id="pointOrgTree"></div>
</body>
</html>
后台:org/showOrgTreeExtJsTree方法:
String result="";
String orgId=request.getParameter("orgId");
String[] oIds=orgId.split("_");
String rId=request.getSession().getAttribute("rId0").toString();
if(rId!=null && !rId.equals("")){
if(oIds.length==2){
if(oIds[0].equals("org")){
int oid=Integer.parseInt(oIds[1].toString());
//子组织
String sql="select org.ORG_NAME ,org.ORG_ID from lgvmp_org org,lgvmp_role_org_relation roleOrg where org.PARENT_ID="+oid+" and org.ORG_ID=roleOrg.ORG_ID and roleOrg.ROLE_ID="+rId+" order by org.ORDER_BY";
Session sess= this.getEntityDao().getHibernateTemplate().getSessionFactory().openSession();
ArrayList<Object[]> orgArr=(ArrayList<Object[]>) sess.createSQLQuery(sql).list();
sess.close();
result="[";
for(Object[] obArr:orgArr){
result=result+"{text:'"+obArr[0].toString()+"',id:'org_"+Integer.parseInt(obArr[1].toString())+"'},";
}
if(result.endsWith(",")){
result=result.substring(0,result.length()-1);
}
result+="]";
}
}
}
response.getWriter().write(result);
分享到:
相关推荐
extjs tree 异步加载树型完整的一个web工程,自已已经试过,可用。
AJAX: 以JSON数据格式,使用ExtJS构造动态异步加载的树。
ExtJs 2.2.1 tree实例,内附mysql数据文件 1. 数据节点一次性加载 2. 节点分为两个类(项目和设备) 3. 右键菜单 4. 节点增、删、改操作 ....... 后台是java struts1。 本例旨在说明extjs的tree操作,后台操作很简陋...
最近在学习extjs tree,有两个不错的例子,希望对需要的朋友有所帮助!
在家研究了一下extjs异步树,-每个节点都异步加载-前后台代码都有-附整个工程-运行通过-前台代码请看doctree.js,后台代码请看TreeService.java,运行环境:Myeclipse6.5+tomcat7.0.27
ExtJs Tree
Ext各种组件的使用实例,Extjs tree+grid+form+panel 使用实例
extjs4,当点击左边的树,右边会生成相应的面板,代码精简,欢迎大家来学习,有问题可以直接交流。
Extjs的tree Extjs的tree Extjs的tree Extjs的tree Extjs的tree
extjs tree 学习资料extjs tree 学习资料extjs tree 学习资料extjs tree 学习资料
Extjs Tree + JSON + Struts2 例子
Extjs Tree + JSON + Struts2 示例源代码
区别在于,远程脚本调用方式加载树节点信息使用的是WebInvokeTreeLoader,需要通过fn属性来指定用于加载数据的远程方法,并在...而传统的树节点加载器是Ext.tree.TreeLoader,需要指定一个url来获得json数据。
ExtJs中Store加载(load)时候提示信息
extjs的tree的使用.doc
资源名称:ExtJS布局之border实例内容简介:border布局是常见的布局样式,本文档中一个实际项目的示例,比较简单,仅供初学者参考。感兴趣的朋友可以过来看看。自动生成行号,支持checkbox全选,动态选择显示哪些列...
ExtJs4 Checkbox tree
从项目中提取的extjs 比较简单的 的简单实例
只要将解压的文件直接放置到myeclipse的webroot下面,启动tomcat访问。简单的EXTJS mvc框架,设计 store,model,controller,view,window等等,同时展示了一些基本的点击显示、修改等等操作,需要的同学自行下载
使用extjs实现的超炫后台模版下载实例 整理测试了很久特来贡献