`
jiangyang1986
  • 浏览: 76434 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

ext 做的动态树,可以进行增删改

    博客分类:
  • js
阅读更多
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
    <head>
        <title>New Document </title>
        <link rel="stylesheet" type="text/css" href="../res/js/ext-3.2.0/resources/css/ext-all.css" />
        <script type="text/javascript" src="../res/js/ext-3.2.0/adapter/ext/ext-base.js">
        </script>
        <script type="text/javascript" src="../res/js/ext-3.2.0/ext-all.js">
        </script>
    </head>
    <body>
        <div id="tree-div" style="overflow:auto; height:300px;width:200px;border:2px solid #c3daf9;">
        </div>
    </body>
</html>
<script>
    menuTree = new Ext.tree.TreePanel({
        el: "tree-div",
        animate: true,
        title: "Extjs动态树",
        collapsible: true,
        enableDD: true,
        enableDrag: true,
        rootVisible: true,
        autoScroll: true,
        autoHeight: true,
        width: "30%",
        lines: true,
listeners: {
            "contextmenu": function(node, e){
                //列出右键菜单
                menu = new Ext.menu.Menu([{
                    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(){
                        myExpand(node);
                    }
                }, {
                    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();
                    }
                }]);
                //显示在当前位置
                menu.showAt(e.getPoint());
            }
        }
    });
   
    //根节点
    var root = new Ext.tree.TreeNode({
        id: "root",
        text: "集团公司",
        editable: true,
        expanded: true
    });
   
    var sub1 = new Ext.tree.TreeNode({
        id:1,
        text: "子公司1",
        singleClickExpand: true
    })
   
root.appendChild(sub1);
    menuTree.setRootNode(root);//设置根节点
    menuTree.render();//不要忘记render()下,不然不显示哦


   menuTree.on('contextmenu',showRightClickMenu,sRightClickMenu);
    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(){
                myExpand(node);
            }
        }, {
            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());
    }
   
/********添加节点**********/
    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);
        }
    };
   

    /******************************************
     展开子节点
     ******************************************/
    function myExpand(node){
        if (node.item(0) == undefined) {
            node.appendChild(new Ext.tree.TreeNode({
                id: node.id + '1',
                text: node.text + "的第一个儿子",
                hrefTarget: "mainFrame",
                handler: function(){
                    myExpand(node);
                }
            }));
        }
        node.expand();
    };
</script>
分享到:
评论

相关推荐

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

    EXT是一个强大的JavaScript库,...通过实际代码示例,我们可以更深入地理解EXT动态树的操作方式。在实践中,结合EXT的API文档和示例代码,可以更好地掌握这些概念和技巧,从而创建出功能强大且用户友好的动态树组件。

    ext2.0 树的增删改操作

    压缩包中的文档或注释应该包含了如何导入项目、运行示例以及如何进行树的增删改操作和下拉树的使用说明。建议首先阅读项目中的README文件或相关文档,了解项目的结构和依赖,然后在MyEclipse中导入项目,配置数据库...

    ext2.0树的增删改

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

    EXT2.0 带无限极树的 增删改差 是用jsp+servlet+ext2.0实现的

    在"EXT2.0 带无限极树的 增删改差 是用jsp+servlet+ext2.0实现的"这个项目中,我们将探讨如何使用EXT2.0与后端的Java技术,如JSP和Servlet,协同工作来实现数据管理的基本操作:添加(Add)、删除(Delete)、修改...

    Ext.net后台分页增删改

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

    Ext+ssh+sybase增删改

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

    Ext+Java 树

    本例子采用ext3.0+java开发的树结构,完全的动态管理,树结构一旦形成,支持右键菜单,进行增删改,增加,就在树当前节点下创建一个新的节点,利用ajax同步到数据库,总之类似于资源管理器的增删改,由于本人是初学...

    SQL Server + VS2005 + 3层结构 + EXT2.0 + ajax 的 增删改 的例子

    标题中的“SQL Server + VS2005 + 3层结构 + EXT2.0 + ajax 的 增删改 的例子”揭示了这个压缩包文件包含了一套使用特定技术栈实现的Web应用程序示例,主要涉及到数据库管理、前端交互以及应用程序架构设计。...

    Ext范例,增删改查,树,界面设计

    这个压缩包文件包含的示例和资源主要展示了如何利用ExtJS实现数据操作(增删改查)以及树形视图(TreePanel)的界面设计。 首先,"增删改查"(CRUD,Create、Read、Update、Delete)是任何数据驱动应用的基础功能。...

    静态ext树

    在静态EXT树中,“静态”可能意味着该树一旦构建完成,就不会有动态的增删改操作,而是专注于高效的读取性能。这通常通过预计算和优化索引来实现。 描述中提到的“博文链接:https://ljbal.iteye.com/blog/1005934...

    EXT学习小例子

    7. **权限控制**:虽然描述中没有明确提到,但在实际的企业级应用中,增删改操作通常会涉及到权限控制。EXTJS可以通过ActionColumn或自定义的控制器实现权限判断,限制用户的操作。 这个“EXT学习小例子”项目为...

    extjs做的增删改查

    标题中的“extjs做的增删改查”表明这个主题聚焦于使用ExtJS框架实现数据管理的基本操作,包括添加(Add)、删除(Delete)、修改(Update)和查询(Query)。ExtJS是一个流行的JavaScript库,用于构建富客户端应用...

    动态添加编辑拖拽的树形表格

    开发者可能需要修改"TreeGridEditor"中的方法,以调用DWR服务,将前端的增删改操作同步到后台数据库中。 总的来说,实现"动态添加编辑拖拽的树形表格"需要对EXT和jQuery有深入理解,熟悉前端的事件处理和数据操作,...

    Ext Js权威指南(.zip.001

    7.5.11 树节点:ext.data.nodeinterface与ext.data.tree / 364 7.5.12 store的方法 / 366 7.5.13 store的事件 / 368 7.5.14 store管理器:ext.data.storemanager / 369 7.6 综合实例 / 369 7.6.1 远程读取json...

    学生信息小例子(asp.net mvc 2.0+ext Js 3.2+sql server)

    在这个例子中,EXT JS 被用来构建用户界面,实现与ASP.NET MVC后端的交互,如展示学生信息、执行增删改操作。 【SQL Server】 SQL Server是微软开发的关系型数据库管理系统,广泛应用于企业级数据存储和管理。在本...

    ext.net示例

    包括布局、事件、grid的绑定(包含增删改)以及数据库分页还有表单绑定取值和dateview控件的使用,树的使用,包含拖拉,修改等操作 dll文件为extnet3.5,可自行下载黏贴到要目录下的net35文件夹里即可

    对LDAP的基本操作(Spring-ldap)+Ext实现显示LDAP的树状结构

    rar包:一个Web工程, 主要有,利用Spring-ldap对LDAP的基本操作(查询,增删改);Extjs实现的对Ldap的树状结构的显示,结构有点类似Softerra LDAP;一个测试类。 pdf:spring-ldap-reference.pdf Extjs.pdf ...

    机务计算机图档管理系统技术.doc

    - 人员维护:管理各部门用户,进行增删改操作,同样以目录树形式展示人员结构。 - 角色管理:通过角色分配,设置人员权限,每个角色对应特定的用户权限组合。 - 档案编码管理:依据TB/T 1588-2005标准进行档案...

    linux_fileSystem.zip_linux 文件系统_linux文件系统_sum3xd

    在Linux中,实现文件的增删改功能主要通过系统调用完成。例如,`open()`用于打开一个文件,`read()`和`write()`用于读写文件内容,`close()`关闭已打开的文件,`mkdir()`创建目录,`unlink()`删除文件,`rename()`...

Global site tag (gtag.js) - Google Analytics