`
wuzijingaip
  • 浏览: 334434 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ext tree json

阅读更多


以前用的,现在建议用 jquery



jsp:
<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>  
<html >  
    <head>  
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<link rel="stylesheet" type="text/css"
href="${pageContext.request.contextPath }/ext3/resources/css/ext-all.css" />
<script type="text/javascript" src="${pageContext.request.contextPath }/ext3/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath }/ext3/ext-all.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/public.js"></script>

<script>   
Ext.onReady(function(){
    // shorthand  
    var Tree = Ext.tree;  
     
    var tree = new Tree.TreePanel({  
        el:'tree-div',  
        autoScroll:true,  
        animate:true,
        height:300,
        enableDD:true,  
        containerScroll: true,  
        loader: new Tree.TreeLoader({  
            dataUrl:'tree.json' 
        })  
    });  
 
    // set the root node  
    var root = new Tree.AsyncTreeNode({  
        text: 'AAA',  
        draggable:false,  
        id:'source'
        ,"allowDrag":false   //false表示不能被拖动
    });  
 
// Tree.TreeLoader({dataUrl:'tree.json'}); 
    tree.setRootNode(root);  
   
    //绑定节点加载之前事件
    tree.on('beforeload',function(node){
        if(node.id!='01'){
              tree.loader.dataUrl = 'tree.json';
          }
    });
        //绑定节点点击事件
/*   tree.on('click', function(node){
        if(node.id!='root'){
            alert(node.id);
            alert(node.text);
            alert(node.href);
        }
    });
  */
    tree.on('nodedrop',
      function(e){  
                          
         if(e.point=='append'){  
            alert('当前"【'+e.dropNode.text+'】"被放到目录"【'+e.target.text+'】"下!');  
//           var resultUrl = "../info/rss.do?method=treeNodeTuoDong&currenRootId="+e.dropNode.id+"&parentRootId="+e.target.id+"&type=append";
//            var resulthtml = XmlHttpHelper.transmit(false, "get", "text", resultUrl, null, null);
         }
        
         else if(e.point=='above'){  
            //alert('当前"'+e.dropNode.text+'"放在了"'+e.target.text+'"上面!');  
     //        var resultUrl = "../info/rss.do?method=treeNodeTuoDong&currenRootId="+e.dropNode.id+"&parentRootId="+e.target.id+"&type=above";
     //        var resulthtml = XmlHttpHelper.transmit(false, "get", "text", resultUrl, null, null);
         }else if(e.point=='below'){  
            //alert('当前"'+e.dropNode.text+'"放在了"'+e.target.text+'"下面!');
     //        var resultUrl = "../info/rss.do?method=treeNodeTuoDong&currenRootId="+e.dropNode.id+"&parentRootId="+e.target.id+"&type=below";
     //       var resulthtml = XmlHttpHelper.transmit(false, "get", "text", resultUrl, null, null); 
         }
          
       }
    );
   
    //绑定节点右键菜单功能
    tree.on('contextmenu',function(node,event){ 
         // alert("node.id="+ node.id);
          event.preventDefault(); //这行是必须的
          rightClick.showAt(event.getXY());//取得鼠标点击坐标,展示菜单
          //alert(node.id);
    //      document.getElementById('rootid').value=node.id;
         });
        
        
     //定义右键菜单
    var rightClick = new Ext.menu.Menu({
        id :'rightClickCont',
        items : [{
            id:'rMenu1',
            text : '编辑',
            //增加菜单点击事件
            handler:function (node){
                 //alert(node.dropNode.id);
            }
        }, {
            id:'rMenu2',
            text : '删除'
        }, {
            id:'rMenu3',
            text : '菜单3'
        }]
     });


   
    // render the tree  
    tree.render();  
    root.expand(); 
   
   
   
    ///////////////////////
   
   
   
    // shorthand  
    var Tree2 = Ext.tree;  
     
    var tree2 = new Tree2.TreePanel({  
        el:'tree-div2',  
        autoScroll:true,  
        animate:true,
        height:300,
        enableDD:true,  
        containerScroll: true,  
        loader: new Tree2.TreeLoader({  
            dataUrl:'tree.json' 
        })  
    });  
 
    // set the root node  
    /*
    var root2 = new Tree2.AsyncTreeNode({  
        text: 'BBB',  
        draggable:false,  
        id:'source'
//       ,"allowDrag":false   //false表示不能被拖动
    });  
    */
 
    // set the root node  
  var root2 = new Tree2.AsyncTreeNode({  
            text: '系统配置与管理',  
            draggable:false,  
            id:'0',  
            children:[  
                {  
                    text: '111',  
                    children:[  
                        {  
                            leaf : true,  
                            text:'111',  
                            href: "javascript:Index.loadDoc('../evaluation/listModels.do')" 
                        },{  
                            leaf : true,  
                            text:'111理',  
                            href: "javascript:Index.loadDoc('../evaluation/activity_list.jsp')" 
                        }  
                ]},{  
                    text: '系统管理',  
                    children:[  
                        {  
                            leaf : true,  
                            text:'用户管理',  
                            href: "javascript:Index.loadDoc('security/usersList.do')" 
                        },{  
                            leaf : true,  
                            text:'组织机构管理',  
                            href: "javascript:Index.loadDoc('manage/tablemanage.do?tablename=T_XX_YXSBZXJBQK&datatype=2&method=loadTolist&view=no')" 
                        },{  
                            leaf : true,  
                            text:'参数配置',  
                            href: "javascript:Index.loadDoc('manage/parameterSet.do')" 
                        },{  
                            leaf : true,  
                            text:'系统日志',  
                            href: "javascript:Index.loadDoc('manage/logsInfo.do')" 
                        }  
                ]}]  
                  
              
        });
       
// Tree.TreeLoader({dataUrl:'tree.json'}); 
    tree2.setRootNode(root2);  
   
    //绑定节点加载之前事件
    tree2.on('beforeload',function(node){
        if(node.id!='01'){
              tree2.loader.dataUrl = 'tree.json';
          }
    });
        //绑定节点点击事件
/*   tree.on('click', function(node){
        if(node.id!='root'){
            alert(node.id);
            alert(node.text);
            alert(node.href);
        }
    });
  */
    tree2.on('nodedrop',
      function(e){  
                          
         if(e.point=='append'){  
            alert('当前"【'+e.dropNode.text+'】"被放到目录"【'+e.target.text+'】"下!');  
//           var resultUrl = "../info/rss.do?method=treeNodeTuoDong&currenRootId="+e.dropNode.id+"&parentRootId="+e.target.id+"&type=append";
//            var resulthtml = XmlHttpHelper.transmit(false, "get", "text", resultUrl, null, null);
         }
        
         else if(e.point=='above'){  
            //alert('当前"'+e.dropNode.text+'"放在了"'+e.target.text+'"上面!');  
     //        var resultUrl = "../info/rss.do?method=treeNodeTuoDong&currenRootId="+e.dropNode.id+"&parentRootId="+e.target.id+"&type=above";
     //        var resulthtml = XmlHttpHelper.transmit(false, "get", "text", resultUrl, null, null);
         }else if(e.point=='below'){  
            //alert('当前"'+e.dropNode.text+'"放在了"'+e.target.text+'"下面!');
     //        var resultUrl = "../info/rss.do?method=treeNodeTuoDong&currenRootId="+e.dropNode.id+"&parentRootId="+e.target.id+"&type=below";
     //       var resulthtml = XmlHttpHelper.transmit(false, "get", "text", resultUrl, null, null); 
         }
          
       }
    );
   
    //绑定节点右键菜单功能
    tree2.on('contextmenu',function(node,event){ 
         // alert("node.id="+ node.id);
          event.preventDefault(); //这行是必须的
          rightClick.showAt(event.getXY());//取得鼠标点击坐标,展示菜单
          //alert(node.id);
    //      document.getElementById('rootid').value=node.id;
         });
        
        
     //定义右键菜单
    var rightClick2 = new Ext.menu.Menu({
        id :'rightClickCont',
        items : [{
            id:'rMenu1',
            text : '编辑',
            //增加菜单点击事件
            handler:function (node){
                 //alert(node.dropNode.id);
            }
        }, {
            id:'rMenu2',
            text : '删除'
        }, {
            id:'rMenu3',
            text : '菜单3'
        }]
     });


   
    // render the tree  
    tree2.render();  
    root2.expand(); 
   
   
   
   
   
});  
        </script>  
    </head>  
    <body>  
        <div id="tree-div" style="overflow:auto; height:300px;width:250px;border:1px solid #c3daf9;"></div>  
        <div id="tree-div2" style="overflow:auto; height:300px;width:250px;border:1px solid #c3daf9;"></div>  
    </body>   
</html> 








test.json:
[{
"children" : [{
"children" : [],
"cls" : "file",
"id" : 11,
"leaf" : true,
"text" : "S600"
}, {
"cls" : "file",
"id" : 12,
"leaf" : false,
"text" : "SLK200",
"children" : [{
"cls" : "file",
"id" : 13,
"leaf" : true,
"text" : "mytest",
"children" : null
}]
}],
"cls" : "folder",
"id" : 10,
"leaf" : false,
"text" : "Benz"
}, {
"children" : [{
"children" : [],
"cls" : "file",
"id" : 21,
"leaf" : true,
"text" : "325i"
}, {
"children" : [],
"cls" : "file",
"id" : 22,
"leaf" : true,
"text" : "X5"
}],
"cls" : "folder",
"id" : 20,
"leaf" : false,
"text" : "BMW"
}]

  • 大小: 13.4 KB
分享到:
评论

相关推荐

    Ext tree json Demo

    Ext Tree JSON Demo是一个基于ExtJS库实现的异步加载树形结构的示例项目。ExtJS是一个强大的JavaScript UI框架,广泛用于构建富客户端应用程序。在本项目中,它被用来展示如何利用JSON数据来动态加载树节点,提高...

    ext tree json 例子(不含EXT包)

    "ext tree json 例子(不含EXT包)"这个标题暗示我们将讨论如何在不直接引用EXT完整包的情况下,仅使用EXT JS中关于TreePanel和JSON解析的部分来构建一个动态的树形结构。这可能涉及到手动引入EXT的核心组件,如...

    Ext tree json 动态加载完美实例

    在本文中,我们将深入探讨如何使用Ext JS的Tree Panel与JSON数据进行动态加载,并实现多选和单选功能。Ext JS是一种强大的JavaScript库,用于构建富客户端应用,而Tree Panel则是展示层次结构数据的一种组件。在后台...

    Ext.tree.TreeLoader附带封装的json类

    在本文中,我们将深入探讨`Ext.tree.TreeLoader`与JSON数据在Ext JS框架中的应用。`Ext.tree.TreeLoader`是Ext JS库中的一个组件,它负责加载和解析树形结构的数据,而JSON(JavaScript Object Notation)则是一种轻...

    EXT 树形结构样例

    这个"EXT 树形结构样例"提供了使用JSON格式返回数据类型的具体示例,帮助开发者理解如何有效地构建和操作EXT Tree。 首先,让我们深入理解EXT Tree的基本概念。EXT Tree是由节点(Nodes)组成的,每个节点可以有子...

    EXT tree 使用 实例 最新

    EXT Tree 是一个强大的JavaScript组件,它是EXT JS框架的一部分,用于构建可交互的树形数据结构。EXT Tree在网页中常用于展示层次结构的数据,如文件系统、组织结构或导航菜单等。EXT Tree提供了丰富的功能,包括...

    oa.rar_ext_ext java oa_ext oa_ext tree_java ext tree

    3. 实现EXT与SSH2的交互:编写Servlet或Controller来处理EXT的AJAX请求,返回JSON格式的数据,供EXT Tree使用。 4. 数据加载和异步更新:使用EXT的Ajax请求和SSH2的后台接口进行数据交互,实现实时加载和更新树节点...

    ext TREE

    【标题】"ext TREE"指的是在软件开发领域中,尤其是Java Web开发中,EXT JS库中的Tree组件。EXT JS是一个强大的JavaScript用户界面库,用于构建富客户端应用。Tree组件是EXT JS中的一个重要部分,它允许开发者创建可...

    Ext Tree示例

    Ext Tree 支持多种数据源,包括 JSON、XML 和 JavaScript 对象。 `tree2.html`、`tres.html`、`s1.html`、`tree.html` 这些 HTML 文件可能包含了不同的示例代码,用于展示 Ext Tree 的不同用法和配置。例如,它们...

    EXT Tree的简单实践

    6. **代码实践**:`extTree.js` 文件很可能是实现 EXT Tree 的具体代码。在这个实践中,开发者可能定义了一个 TreePanel,并设置了相应的配置项,加载了数据,注册了事件处理器。通过阅读和分析这个文件,可以深入...

    符合Ext tree的全国城市列表json格式

    标题中的“符合Ext tree的全国城市列表json格式”指的是使用Ext JS库构建的树形结构数据,这种数据格式常用于展示具有层级关系的数据,如行政区域划分。Ext JS是一个强大的JavaScript框架,它提供了丰富的组件库,...

    Extjs Tree + JSON + Struts2 例子

    var tree = new Ext.tree.TreePanel({ url: 'treeAction.action', loader: new Ext.tree.TreeLoader({ dataUrl: 'treeAction.action', jsonData: true // 告诉 TreeLoader 使用 JSON 解析数据 }), root: { ...

    EXT tree学习 参考

    5. **多种数据源**:EXT Tree可以绑定到JSON、XML、Array等多种数据源,适应不同的后端接口。 在EXT JS中,创建一个TreePanel通常需要以下步骤: 1. **定义模型(Model)**:首先,需要定义树节点的数据模型,声明...

    ExtJS4+Accordion+SERVLET/STRUTS2+JSON+Ext.tree.Panel实例

    这个实例结合了多个技术,包括Accordion布局、Servlet、Struts2以及JSON数据交互,以及Ext.tree.Panel组件,以创建一个功能丰富的用户界面。 Accordion布局是ExtJS中的一个布局管理器,它允许在一个区域内组织多个...

    Ext4+JSON+Servlet+Tree构建Web应用框架

    在构建Web应用框架时,"Ext4+JSON+Servlet+Struts2+Ext.tree.Panel+Ext.tab.Panel"的组合提供了一种高效且功能丰富的解决方案。这个框架的核心组件包括Ext4 JavaScript库、JSON数据交换格式、Servlet或Struts2作为...

    ssh+ext+json+dwr技术实现的动态树

    动态树(Dynamic Tree)是EXT JS中的一个组件,它可以实时更新和扩展,用户可以通过它来交互式地查看和操作层次结构的数据。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,...

    AnyFo - Util - Json4Ext:通用ExtJS数据交换处理

    AnyFo - Util - Json4Ext Json4Ext项目背景 在大家开发的系统中,如果程序用ExtJS做表现层,那么就需要使ExtJS开发的界面和后台Java代码中生成的数据交互,一般来说,可以...4. ExtJS中的Tree控件需要的Json字符串

    自己写的一个动态从后台数据库加载Ext.tree的json数据工具类

    这个工具类的核心功能是获取JSON格式的数据,并将其动态加载到Ext.tree中。 首先,我们需要了解Ext.tree的基本概念。Ext.tree是ExtJS库中的一个组件,它提供了一个可交互的树形视图,允许用户展开、折叠节点以及...

    treejson.json

    省市区3级数据,ID为全国数据

    ext tree 分页

    在EXT JS框架中,"ext tree 分页"是一种优化技术,用于处理大量数据时避免页面卡顿的问题。在EXT JS的树形组件(TreePanel)中,如果一次性加载所有节点,特别是当树结构非常深或者节点数量巨大时,不仅会消耗大量...

Global site tag (gtag.js) - Google Analytics