`
天涯海角tour
  • 浏览: 174601 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

extjs treepanel 右键菜单实现

阅读更多

 效果图:
1: 

2:

3:

1:html页面

<style type="text/css">
      .leaf
      {
            background:url(../../script/extjs/resources/images/default/tree/drop-add.gif) !important;
              }<!--节点右键菜单的叶子图片-->
     
    </style>
<link rel="stylesheet" type="text/css" href="../../script/extjs/resources/css/ext-all.css" />
   
 	<script type="text/javascript" src="../../script/extjs/adapter/ext/ext-base.js"></script>
 	<!-- ENDLIBS -->

    <script type="text/javascript" src="../../script/extjs/ext-all.js"></script>

<!-- Common Styles for the examples -->
<link rel="stylesheet" type="text/css" href="../../script/extjs/shared/examples1.css" />
</head>
<body>
<script type="text/javascript" src="../../script/extjs/shared/examples1.js"></script><!-- EXAMPLES -->
<script type="text/javascript" src="../../script/treePanel.js"></script><!-- EXAMPLES -->

<body>
    <div id="container" >
    </div>
    
</body>
2:js
Ext.onReady(function(){
    var mytree = new Ext.tree.TreePanel({
        renderTo:'container',
        title: '图片配置',
        height:600,
        widht:900,
        lines:true,
        useArrows:true,
        autoScroll:true,
        animate:true,
        //enableDD:true,
        containerScroll: true,
        resizable : true,
        
        rootVisible: false,
        frame: true,
        root: {
            nodeType: 'async'
        },
        
        // auto create TreeLoader
       // dataUrl: 'treePanel.json',
        loader:new Ext.tree.TreeLoader({

                url:"ImageSortJson2?type=load",//服务器处理数据代码

                listeners:{

                    "loadexception":function(loader,node,response){

                        //加载服务器数据,直到成功

                        

                    }

                }

      }),

		 listeners:{
            "contextmenu":function(node,e){
                              
						 var nodemenu=new Ext.menu.Menu({

                                      items:[{
                                          
                                          text:"添加结点",
                                          iconCls:'leaf',//右键名称前的小图片
                                          handler:function(){

                                            Ext.MessageBox.prompt("请输入新项名称","",function(e,text){

                                                if(e=="ok")

                                                {

                                                  Ext.Ajax.request({
                                                      url: 'ImageSortJson2?type=add&gnbh='+node.id+'&value='+text,
                                                      success:function(request)
                                                      {
                                                          mytree.root.reload();//数的重新加载
                                                          mytree.root.expand(true,false);

                                                      },

                                                      failure:function(){
                                                          alert("添加失败");
                                                      }

                                                  });

                                                }

                                                else

                                                {

                                                      alert("取消了");

                                                }

                                            })

                                          }

                                      },{

                                          text:"编辑结点",
                                          icon: '../../script/extjs/resources/images/default/tree/leaf.gif',
                                           cls: 'x-btn-text-icon',
                                          handler:function(){
                                            Ext.MessageBox.prompt("请输入此项新名称","",function(e,text){
                                                if(e=="ok")
                                                {
                                                  Ext.Ajax.request({
                                                      url: 'ImageSortJson2?type=edit&gnbh='+node.id+"&value="+text,//传递需要的值,服务器会执行修改
                                                      success:function(request)
                                                      {
                                                          mytree.root.reload();
                                                          mytree.root.expand(true,false);

                                                      },

                                                      failure:function(){

                                                          alert("编辑失败");

                                                      }

                                                  });

                                                }

                                                else

                                                {


                                                }

                                            })

                                          }

                                      },{

                                          text:"删除结点",
                                           icon: '../../script/extjs/resources/images/default/tree/delete.jpg',
                                           cls: 'x-btn-text-icon',
                                         // iconCls:'deletess',
                                          handler:function(){
                                          
                                          Ext.MessageBox.confirm("提示","是否确定删除?",function(e){
                                             if(e=="yes")
                                             {
                                               Ext.Ajax.request({

                                                      url: 'ImageSortJson2?type=delete&gnbh='+node.id,//根据id删除节点
                                                      success:function(request)

                                                      {

                                                          mytree.root.reload();

                                                          mytree.root.expand(true,false);

                                                      },

                                                      failure:function(){

                                                          alert("删除失败");

                                                      }

                                            });
                                             }
                                          
                                          });
                                            

                                          }

                                      }]

                                  });

                                  nodemenu.showAt(e.getPoint());//menu的showAt,不要忘记

                              }

                             

                          

						


                                 
      }
  });
  

   mytree.getRootNode().expand(true);

});
       
 
  3:json格式
[{    
        id:'01',
        text:'a',
        children:[
                                 { id:'0102',text:'b',leaf:true},
                                  {id:'0103',text:'c',leaf:true},
                                  {id:'0101',text:'d',leaf:true}
                    ]
         }]
  • 大小: 4.1 KB
  • 大小: 6.5 KB
  • 大小: 8.5 KB
分享到:
评论

相关推荐

    ExtJS 3.4关于TreePanel的一些实例

    学习TreePanel时根据网上的资料自己实现的实例,结构如下: 1. 创建一棵树 2. 使用TreeLoader加载数据生成树 3. 读取本地Json数据生成树 4. 使用Servlet提供数据 5. 树的事件 6. 右键菜单 7. 修改节点的默认图标 8. ...

    复选框的且带右键菜单的树代码

    本文档提供的代码实现了基于Extjs框架的树形结构,其中包含了复选框功能及右键菜单功能。该树形结构主要用于联系人管理系统的开发,提供了丰富的用户交互体验。通过以上知识点的解析,可以帮助开发者更好地理解和...

    ext带右键菜单的树

    在描述中提到的"ext带右键菜单的树"是指在ExtJS中实现的一种交互功能,即在树形控件上通过右键点击来显示一个上下文菜单。这种功能极大地提高了用户与应用程序的交互性,使得操作更加直观和便捷。 在ExtJS中,树形...

    Ext 中的Tree实现不同节点不同的右键菜单

    本篇文章将深入探讨如何在`ExtJS`的Tree组件中实现不同节点具有不同的右键菜单功能。 首先,我们需要理解`ExtJS`的`Tree`组件的基本工作原理。`Tree`是通过`TreeNode`对象来表示每一个层级节点的,每个节点都可以有...

    ExtRightMenuTree

    在本文中,我们将深入探讨ExtJS的TreePanel组件,以及如何利用ExtRightMenuTree实现自定义的右键菜单功能,以提供更丰富的用户交互体验。 首先,ExtJS是一个强大的JavaScript库,广泛用于构建富客户端应用。它的...

    EXTJS动态树的实现举例

    通过扩展Tree Node或Tree Panel,可以自定义节点的行为,例如添加右键菜单、拖放操作等。 通过以上步骤,我们就能在EXTJS中实现一个动态树。具体示例代码可能包括HTML、CSS和JavaScript文件,它们共同构成一个完整...

    EXTJS扩展例子集

    2. **行为扩展**:这些扩展可能提供新的用户交互模式,例如拖放功能、右键菜单等。 3. **工具类**:可能包含一些实用的函数,用于处理数据、DOM操作或者优化性能。 4. **主题**:EXTJS支持主题定制,开发者可以...

    ExtJs树例子

    同时,用户可以通过点击、拖拽、右键菜单等方式与树进行交互。例如,可以监听`click`、`expand`、`collapse`等事件来进行相应的操作。 6. **扩展性**:ExtJS的树形控件具有高度的可扩展性,可以通过插件(plugins)...

    extjs tree + json+struts2示例源代码

    ExtJS Tree + JSON + Struts2 示例源代码详解 在Web开发中,构建交互式的用户界面是关键。...在实际开发中,你可以根据需求进一步定制TreePanel的功能,如添加右键菜单、节点编辑等,以满足更复杂的需求。

    ext+ssh树,带右键功能

    【标题】"ext+ssh树,带右键功能"指的是在Web应用开发中,结合EXTJS(EXT)和Struts2(SSH)框架构建的一种特殊交互界面,它包含了一个能够展示层级结构数据的树形组件,并且具备了右键菜单功能。EXTJS是一款强大的...

    ExtJS 资料收集

    在ExtJS中,我们可以方便地监听键盘事件,例如回车键,以实现特定功能,如表单提交。以下是一个典型的例子,展示了如何监听回车键并触发登录操作: ```javascript // 创建一个表单 Ext.define('Demo.view.Viewport'...

    extjs目录树编辑

    例如,可以监听`itemcontextmenu`事件来显示右键菜单,`beforeedit`事件来在编辑前进行验证,`edit`事件来处理编辑后的操作,以及`beforeremove`事件来确认删除操作。 7. **数据绑定**:EXTJS的树结构通常与后台...

    使用右键实现增删改查的树形结构设计

    本文将深入探讨如何通过JavaScript实现一个支持右键菜单进行增删改查操作的树形结构组件。我们将重点介绍前端实现的细节,包括如何定义树形结构、如何响应用户的右键点击事件以及如何处理数据的增加、删除和修改。 ...

    [上传下载]ExtJS 2.2 开源网络硬盘系统_dogdisk.zip

    - 文件操作:提供基本的文件操作,如删除、重命名,这些功能通常通过按钮或右键菜单触发,并通过AJAX请求执行服务器端操作。 - 文件夹管理:可能使用TreePanel组件展示文件夹结构,支持创建、删除和重命名文件夹。...

    精通JS脚本之ExtJS框架.part2.rar

    10.3 右键菜单 10.4 修改节点的默认图标 10.5 从节点弹出对话框 10.6 节点提示信息 10.7 为节点设置超链接 10.8 树形的拖放 10.8.1 节点拖放的3种形式 10.8.2 叶子不能append 10.8.3 判断拖放的目标 10.8.4...

    关于extjs ext.tree

    - `Ext.menu.Menu`可以与`itemcontextmenu`事件结合,创建节点的右键菜单。 - `Ext.selection.TreeModel`提供了树形选择行为,支持单选或多选。 总之,`ext.tree`是ExtJS库中一个强大且灵活的组件,通过配置和...

    树的操作【菜单增删改拖动】.zip

    3. **菜单操作**:在资源包中,"菜单"可能指的是与树节点相关的右键菜单,用户可以通过菜单进行增删改操作。菜单项的添加、删除和修改通常通过ExtJS的Menu类和MenuItem类实现,通过监听用户的点击事件来执行相应操作...

    轻松搞定Extjs_原创

    - **标签弹出菜单**:为选项卡添加右键菜单以增强功能性。 #### 第二十八章:Viewport类 - **概述**:解释Viewport类的作用及其在应用布局中的位置。 - **Viewport的基本使用**:展示如何使用Viewport类来创建主...

    ext导步树完整实例

    - 在实际应用中,可能还需要实现节点的展开/折叠、拖放操作、右键菜单、节点点击事件等功能。EXTJS提供了丰富的API和事件处理机制来支持这些高级特性。 6. **示例代码**: - 实例代码会包含创建TreePanel,配置...

    Extjs教程_第八章_Tree(树)(2)

    - **显示背景菜单**:通过添加 `contextMenu` 配置项,为树节点提供右键菜单。 - **改变选择行为**:使用 selection model 的方法如 `select`, `deselect` 可以控制节点的选择状态。 通过上述知识,你不仅可以...

Global site tag (gtag.js) - Google Analytics