示例
前台:
var xxxStore=Ext.create('Ext.data.TreeStore',{
fields : [{name : 'id', type : 'string'},
{name : 'text', type : 'string'},
{name : 'leaf', type : 'bool', defaultValue: false},
{name : 'type', type : 'string'}],
autoLoad: false,
listeners:{
load: function(store, records, successful, eOpts){
if(records.childNodes.length > 0){
records.childNodes[0].expand();
tree.getSelectionModel().select(records.childNodes[0]);
if(records.childNodes[0].childNodes.length > 0){
records.childNodes[0].childNodes[0].expand();
tree.getSelectionModel().select(records.childNodes[0].childNodes[0]);
if(records.childNodes[0].childNodes[0].childNodes.length > 0){
records.childNodes[0].childNodes[0].childNodes[0].expand();
tree.getSelectionModel().select(records.childNodes[0].childNodes[0].childNodes[0].childNodes[0]);
tree.fireEvent('itemclick', tree, records.childNodes[0].childNodes[0].childNodes[0].childNodes[0]);
}else{
xxxItemGird.getStore().removeAll();
}
}else{
xxxItemGird.getStore().removeAll();
}
}else{
xxxItemGird.getStore().removeAll();
}
}
}
});
var tree = Ext.create('Ext.tree.Panel', {
//title: ' ',
width: '100%',
height: '100%',
flex:1,
rootVisible: false,
store: xxxStore,
listeners:{
'itemclick': function tree_event(el,record, item, index, e, eOpts){
if(record.get("type") == "TABNAME"){
queryParamStore = record.get('id');
xxxItemGird.getStore().currentPage = 1;
xxxItemGird.getStore().reload({
params : {
queryParam: record.get('id'),
start : 0,
limit: cellGirdLimit
}
});
}
}
}
});
xxxStore.setProxy({
type:'ajax', url:'/xxx/xxx/xxx.do',
getMethod: function(){
return 'POST';
},//亮点,设置请求方式,默认为GET
extraParams:{}
});
xxxStore.load();
后台:
public Map<String,Object> getTree(HttpServletRequest request) {
String queryParam = request.getParameter("queryParam");
//查询树中所有的平台
List<Map<String,Object>> allPlatform = xxx.getxxx(queryParam);
List<Map<String,Object>> treeMap= new ArrayList<Map<String,Object>>();
//平台
for(int i=0; i < allPlatform.size(); i++){
List<Map<String,Object>> dbnameListMap= new ArrayList<Map<String,Object>>();
Map<String,Object> allPlatformMap = new HashMap<>();
allPlatformMap.put("id", allPlatform.get(i).get("PLATFORM")+"");
allPlatformMap.put("text", allPlatform.get(i).get("PLATFORM"));
allPlatformMap.put("type", "PLATFORM");
allPlatformMap.put("children", dbnameListMap);
//查询树种所有的数据库名
List<Map<String,Object>> allDbname = xxx.getxxx(xxx);
//数据库
for (Map<String, Object> map : allDbname) {
List<Map<String,Object>> ownerListMap= new ArrayList<Map<String,Object>>();
Map<String,Object> dbnameMap = new HashMap<>();
dbnameMap.put("id", allPlatformMap.get("id")+","+map.get("DBNAME"));
dbnameMap.put("text", map.get("DBNAME") == null?"默认":map.get("DBNAME"));
dbnameMap.put("type", "DBNAME");
dbnameMap.put("children", ownerListMap);
//查询树中所有的所属用户
List<Map<String,Object>> allowner = xxx.getxxx(xxx);
//所属用户
for (Map<String, Object> map2 : allowner) {
List<Map<String,Object>> tabnameListMap= new ArrayList<Map<String,Object>>();
Map<String,Object> ownerMap = new HashMap<>();
ownerMap.put("id",dbnameMap.get("id")+","+map2.get("OWNER"));
ownerMap.put("text", map2.get("OWNER") == null?"默认":map2.get("OWNER"));
ownerMap.put("type", "OWNER");
ownerMap.put("children", tabnameListMap);
//查询树中所有的表名
List<Map<String,Object>> allTabname = xxx.getxxx(xxx);
//表名
for (Map<String, Object> map3 : allTabname) {
List<Map<String,Object>> columnameListMap= new ArrayList<Map<String,Object>>();
Map<String,Object> tabnameMap = new HashMap<>();
tabnameMap.put("id", ownerMap.get("id")+","+map3.get("TABNAME"));
tabnameMap.put("text", map3.get("TABNAME"));
tabnameMap.put("type", "TABNAME");
tabnameMap.put("children", columnameListMap);
tabnameMap.put("leaf", true);
tabnameListMap.add(tabnameMap);
}
ownerListMap.add(ownerMap);
}
dbnameListMap.add(dbnameMap);
}
treeMap.add(allPlatformMap);
}
Map<String,Object> roomMap = new HashMap<>();
roomMap.put("text", "平台");
roomMap.put("type", "platformRoot");
roomMap.put("children", treeMap);
return roomMap;
}