`
huang5787826
  • 浏览: 46742 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
文章分类
社区版块
存档分类
最新评论

ext,tree,右键,增删改

阅读更多
//1)先创建一棵树 
menuTree = new Ext.tree.TreePanel({}); 
//2)增加右击事件 
menuTree.on('contextmenu',showRightClickMenu,RightClickMenu); 
var RightClickMenu = new Ext.menu.Menu({ 
     //右击事件 
              items:[{ 
     xtype:"button", 
     text:"添加节点", 
     icon:"images/icon/menuitem.gif", 
     pressed:true, 
     handler : function(tree) { 
           onInsertNode(); 
          } 
     },{ 
       xtype:"button", 
     text:"修改节点", 
     icon:"images/icon/menuitem.gif", 
     pressed:true, 
       handler : function() { 
       onUpdate(); 
      } 
      },{ 
         xtype:"button", 
     text:"删除节点", 
     icon:"images/icon/menuitem.gif", 
     pressed:true, 
         handler : function(tree) { 
        onDeleteNode(); 
        } 
         }] 
   }); 
    function showRightClickMenu(node,e) 
    { 
        //先让该节点被选中 
        node.select(); 
        //参数node是右击的那个节点,即事件源 
        //参数e是事件对象 
        this.showAt(e.getPoint()); 
    } 
//3)未与数据库相连,只是直接在树上显示 
function onInsertNode() 
{ 
Ext.Msg.prompt('请输入新建的节点名称' , '新建标准名称' , this.onInsertNodePrompt , this) ; 
} 
function onInsertNodePrompt(btn , text) 
{ 
if(btn == 'ok') 
{ 
var selectedNode = menuTree.getSelectionModel().getSelectedNode(); 
  var selectedParentNode = selectedNode.parentNode; 
  var newNode = new Ext.tree.TreeNode({ 
     text : text 
    }); 
  if (selectedParentNode == null) { 
   selectedNode.appendChild(newNode); 
  } 
  else 
  { 
   selectedParentNode.insertBefore(newNode, selectedNode); 
  } 
  setTimeout(function() { 
     treeEditor.editNode = newNode; 
     treeEditor.startEdit(newNode.ui.textNode); 
    }, 10); 
} 

function onDeleteNode() 
{ 
  Ext.Msg.confirm('系统提示' , '你是否确定删除此标准?' , this.onDeleteNodeConfirm , this); 
}; 
function onDeleteNodeConfirm(btn) 
{ 
if(btn == 'yes') 
{ 
var selectedNode = menuTree.getSelectionModel().getSelectedNode(); 
selectedNode.remove(); 
} 
} 
function onUpdate() 
{ 
  Ext.Msg.confirm('系统提示' , '你是否确定修改此标准?' , this.onUpdateNode , this); 
}; 
function onUpdateNode() 
{ 
var selectedNode = menuTree.getSelectionModel().getSelectedNode(); 
Ext.Msg.prompt('请输入修改的节点名称' , '修改名称' , this.onUpdateNodePrompt , this , false , selectedNode.text) ; 
} 
function onUpdateNodePrompt(btn , text) 
{ 
if(btn == 'ok') 
{ 
var selectedNode = menuTree.getSelectionModel().getSelectedNode(); 
selectedNode.setText(text) ; 
setTimeout(function() { 
     treeEditor.editNode = selectedNode; 
     treeEditor.startEdit(selectedNode.ui.textNode); 
    }, 10); 
} 
} 
//4)与数据库相连,也是只是直接在树上显示 
    function onInsertNode() 
{ 
Ext.Msg.prompt('请输入新建的节点名称' , '新建标准名称' , this.onInsertNodePrompt , this) ; 
} 
function onInsertNodePrompt(btn , text) 
{ 
if(btn == 'ok') 
{ 
var selectedNode = menuTree.getSelectionModel().getSelectedNode(); 
  Ext.Ajax.request({ 
               url: action的路径, 
                method:'post', 
                params:{name:text,cid:selectedNode.id}, 
                success: function(response, option) 
                        { 
                            var result = response.responseText; 
                            if(result.match('ok')) 
                            { 
                            alert('新增成功!'); 
                                menuTree.root.reload(); 
                                root.expand(); 
                            } 
                        }, 
                        failure: function(response, option) 
                        { 
                            
                        } 
           }); 
} 
} 




//该action的路径直接到一个jsp页面 
<%@page contentType="application/json;charset=utf-8" import="org.springframework.web.context.support.*,org.springframework.core.io.*,org.springframework.beans.factory.*,org.springframework.beans.factory.xml.*,org.springframework.context.*,org.springframework.context.support.*,com.cssrc.bean.*,com.cssrc.dao.impl.*,com.cssrc.dao.*,java.util.List" %> 
<% 
request.setCharacterEncoding("utf-8"); 
response.setCharacterEncoding("utf-8"); 
String name = request.getParameter("name"); 
String str[] = name.split(" "); 
String code = ""; 
if(str.length==2) 
{ 
code = str[1]; 
} 
String cid = request.getParameter("cid"); 
int id = Integer.parseInt(cid); 
ServletContext sc = request.getSession().getServletContext(); 
ApplicationContext ac =WebApplicationContextUtils.getWebApplicationContext(sc);//很重要获得dao 
IMenuItemDAO dao = (IMenuItemDAO)ac.getBean("MenuItemDAO"); 
MenuItem m = dao.findById(id); 
MenuItem mi = new MenuItem(); 
mi.setMenuBar(m.getMenuBar()); 
mi.setImage("menuitem.gif"); 
if(m.getItemCode()==1)//当前是一级菜单 
{ 
mi.setParentId(m.getId()); 
List l = dao.findByProperty("parentId",m.getId()); 
if(l.size()==1) 
{ 
mi.setDisplayOrder(2); 
} 
else 
{ 
MenuItem t = (MenuItem)l.get(l.size()-1); 
mi.setDisplayOrder(t.getDisplayOrder()+1); 
} 
mi.setItemCode(2); 
mi.setItemName(name); 
mi.setClickEvent("item.jsp"); 
} 
else if(m.getItemCode()==2) 
{ 
mi.setParentId(m.getId()); 
List l = dao.findByProperty("parentId",m.getId()); 
if(l.size()==0) 
{ 
mi.setDisplayOrder(1); 
} 
else if(l.size()==1) 
{ 
mi.setDisplayOrder(2); 
} 
else 
{ 
MenuItem t = (MenuItem)l.get(l.size()-1); 
mi.setDisplayOrder(t.getDisplayOrder()+1); 
} 
mi.setItemCode(3); 
mi.setItemName(name); 
mi.setClickEvent("standard/standardlistAction?type="+code+""); 
} 
dao.save(mi); 
response.getWriter().write( 
        "ok"); 
%> 
function onDeleteNode() 
{ 
  Ext.Msg.confirm('系统提示' , '你是否确定删除此标准?' , this.onDeleteNodeConfirm , this); 
}; 
function onDeleteNodeConfirm(btn) 
{ 
if(btn == 'yes') 
{ 
var selectedNode = menuTree.getSelectionModel().getSelectedNode(); 
  Ext.Ajax.request({ 
               url: context+'/node/nodedelete.action', 
                method:'post', 
                params:{cid:selectedNode.id}, 
                success: function(response, option) 
                        { 
                            var result = response.responseText; 
                            var str1 = 'ok'; 
                            var str2 = 'cancel'; 
                            if(result.match(str2)) 
                            { 
                            alert('该节点不能删除!'); 
                            } 
                            if(result.match(str1)) 
                            { 
                            alert('删除成功!'); 
                                menuTree.root.reload(); 
                                root.expand(); 
                            } 
                        }, 
                        failure: function(response, option) 
                        { 
                            
                        } 
           }); 
} 
} 
function onUpdate() 
{ 
  Ext.Msg.confirm('系统提示' , '你是否确定修改此标准?' , this.onUpdateNode , this); 
}; 
function onUpdateNode() 
{ 
var selectedNode = menuTree.getSelectionModel().getSelectedNode(); 
Ext.Msg.prompt('请输入修改的节点名称' , '修改名称' , this.onUpdateNodePrompt , this , false , selectedNode.text) ; 
} 
function onUpdateNodePrompt(btn , text) 
{ 
if(btn == 'ok') 
{ 
var selectedNode = menuTree.getSelectionModel().getSelectedNode(); 
  Ext.Ajax.request({ 
               url: context+'/node/nodeupdate.action', 
                method:'post', 
                params:{name:text,cid:selectedNode.id}, 
                success: function(response, option) 
                        { 
                            var result = response.responseText; 
                            var str1 = 'ok'; 
                            var str2 = 'cancel'; 
                            if(result.match(str2)) 
                            { 
                            alert('该节点不能修改!'); 
                            } 
                            if(result.match(str1)) 
                            { 
                            alert('修改成功!'); 
                                menuTree.root.reload(); 
                                root.expand(); 
                            } 
                        }, 
                        failure: function(response, option) 
                        { 
                            
                        } 
           });
 

分享到:
评论

相关推荐

    EXT tree 使用 实例 最新

    8. **扩展和插件**:EXT Tree有丰富的扩展和插件,如`checkbox`(复选框节点)、`contextmenu`(右键菜单)等,可以进一步增强功能。 在文档`extjs的tree的使用.doc`中,你将找到关于如何设置这些配置、创建树实例...

    oa.rar_ext_ext java oa_ext oa_ext tree_java ext tree

    标题中的"oa.rar_ext_ext java oa_ext oa_ext tree_java ext tree"似乎是一个组合字符串,它可能代表了某个项目或教程的文件结构。其中,“oa”可能是项目或系统的名称,而“ext”、“java”、“oa_ext”、“tree_...

    ext带右键菜单的树

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

    ext TREE

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

    Ext Tree示例

    Ext Tree 是 Ext JS 库中的一个组件,它用于在用户界面上展示层次化的数据结构,类似于文件系统的目录结构。在给定的资源中,我们有多个 HTML 文件(tree2.html, tres.html, s1.html, tree.html)和 JavaScript 文件...

    Ext.net后台分页增删改

    在"Ext.NET后台分页增删改"这个主题中,我们将探讨如何利用Ext.NET实现数据库后台分页、树形视图操作以及Grid面板的CRUD(创建、读取、更新和删除)功能。 首先,让我们深入了解一下后台分页。在Ext.NET中,为了...

    EXT Tree的简单实践

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

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

    本篇将深入探讨如何在`Ext JS`中实现Tree组件的不同节点拥有不同的右键菜单,这对于提供定制化的用户体验是非常有用的。 `Ext JS`的Tree组件是一个可扩展的树形结构,用于展示层级数据。在默认情况下,Tree的所有...

    ext2.0 树的增删改操作

    以上就是关于"ext2.0 树的增删改操作"及其相关知识的详细说明。掌握这些内容,将有助于你在构建Web应用时更熟练地使用树形控件,并且能够根据需求进行定制化开发。同时,了解下拉树的实现,可以使你的界面更加友好,...

    extTree例子点击出现等

    ExtTree是Ext JS库中的一个组件,用于创建和展示树形结构的数据。它在Web应用程序中广泛使用,特别是在需要组织和导航层次结构信息时。在本案例中,“extTree例子点击出现界面”指的是用户在浏览ExtTree时,通过点击...

    Ext tree json 动态加载完美实例

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

    EXT TREE 扩展CHECKBOX JS

    EXT TREE扩展CHECKBOX JS是一种在EXT JS框架下对树形组件(Tree Panel)进行增强,实现复选框功能的技术。EXT JS是一个强大的JavaScript GUI库,它提供了丰富的组件和功能,用于构建复杂的Web应用程序。在EXT JS中,...

    EXT构造动态树 包括增删改操作

    2. **增删改操作** - **添加节点**:可以使用`insertChild`方法向指定节点下添加子节点,需要传入索引位置和新节点对象。 - **删除节点**:使用`remove`方法删除指定的节点,如果需要从服务器删除,还需要同步更新...

    ext2.0树的增删改

    本文将重点讨论“ext2.0树的增删改”这一主题,结合myeclipse8.5开发环境、MySQL数据库以及struts2框架,深入解析如何实现树型数据结构的操作,并添加权重功能。 首先,让我们了解一下ext2.0。ext2是Linux操作系统...

    Ext+ssh+sybase增删改

    现在我们将围绕“EXT+SSH+Sybase增删改”的主题进行深入讲解。 EXTJS在创建Web应用中的主要角色是提供美观且功能强大的UI组件,如表格、表单、树形视图等。在"增删改"操作中,EXTJS的Grid Panel组件可以用于显示...

    EXT tree学习 参考

    EXT Tree是EXT JS库中的一个组件,用于在Web应用程序中展示层次结构的数据。EXT JS是一个强大的JavaScript UI框架,提供了一系列的可复用组件,EXT Tree就是其中之一,它可以帮助开发者构建功能丰富的树形视图,常...

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

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

    ext-tree.rar_ext_ext tr_ext tre_ext.tr_ext.tree

    【标题】"ext-tree.rar_ext_ext tr_ext tre_ext.tr_ext.tree" 暗示这是一个关于Ext JS库中TreePanel组件的实例,其中可能包含了用于创建和管理数据结构的树形视图,以及与数据库交互的功能。 【描述】"ext的树的...

    Ext tree json Demo

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

    Ext表格中增删改查实例

    本文将深入探讨如何在Ext Grid中实现增删改查(CRUD)操作,这些操作是任何数据管理应用的基础。 首先,我们需要了解`Ext.grid.Panel`,它是Ext JS中的主要表格组件。这个组件可以显示大量数据,并提供了分页、排序...

Global site tag (gtag.js) - Google Analytics