`
hackbomb
  • 浏览: 217190 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

可直接编辑节点的tree

    博客分类:
  • Ext
阅读更多

其实代码并不是很复杂,只是在原有的树形添加一个TreeEditor就可以了。代码如下
由于我一向热衷于面向对象的编程方式,所以我提供的代码也是面向对象型的编程,如有不明白可以发问。
先贴js文件:上面有代码提示


//节点可以编辑的树
Ext.namespace('demo');

demo = function(){
   this.init();//初始化函数  
};

Ext.extend(demo,Ext.util.Observable,{
        
   init:function(){
      //创建一个简写
      var Tree = Ext.tree;
     
      //添加一个树形面板
      this.tree = new Tree.TreePanel({
         el:'tree-panel',//将树形添加到一个指定的div中
         title:'可编辑的树',
         autoScroll:true,
         enableDD:false,//是否支持拖拽效果
         containerScroll: true,//是否支持滚动条
         loader:new Ext.tree.TreeLoader({ 
             dataUrl:'tree-edit-test.json' 
           })
      });
     
      this.treeEditer = new Tree.TreeEditor(
         this.tree,
         {allowBlank: false}
      );
     
      //创建一个根节点
      this.root = new Tree.AsyncTreeNode({   
         text: 'root',   
            draggable:false,   
            id:'source'   
         });   
      //为tree设置根节点
      this.tree.setRootNode(this.root);
      //渲染树形
      this.tree.render();   
         this.root.expand(true); 
     
     
      /*
         为创建的treeEditer添加事件
         有两个事件最为常用,一个为beforestartedit另一个为complete
         从名字就可以看出,beforestartedit事件是在编辑前的事件,因此可以通过它来判断那些节点可以编辑那些不可以。
         complete为编辑之后的事件,在这里面可以添加很多事件,比如添加一个Ext.Ajax向后台传送修改的值等等。
      */
      this.treeEditer.on("beforestartedit", function(treeEditer){
         var tempNode = treeEditer.editNode;//将要编辑的节点
         if(tempNode.isLeaf()){
            return true;
         }else{
            return false;  
         }
       });

       this.treeEditer.on("complete", function(treeEditer){
           alert(treeEditer.editNode.text);
       });
     
     
   }
        
});

//实例化主程序类
Ext.BLANK_IMAGE_URL = 'images/public/s.gif"';

Ext.onReady(function(){
   var myDemo = new demo(); //实例化                              
});

html:


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>节点可以编辑的树</title>
<link rel="shortcut icon" href="favicon.ico" />
<link rel="Bookmark" href="favicon.ico" />
<link href="css/default.css" rel="stylesheet" type="text/css">
<!--导入prototype文件 -->
<script language="javascript" type="text/javascript" src="js/prototype.js"></script>
</head>

<body>
<!--loading加载 -->
<div id="loadingTab">
    <div class="loading-indicator">
        <img src="images/public/loader.gif" width="32" height="32" style="margin-right:8px;float:left;vertical-align:top;"/>
        <a href="index.html">可编辑的树练习</a> -
        <span id="loading-yfo"><a href="http://yfoffice.net.cn" target="_blank">忆凡工作室</a></span><br />
        <span id="loading-msg">加载样式表和图片...</span>
    </div>
</div>
<br>
<h1>动态-异步tree的综合练习</h1>
<div id="tree-panel" style=" margin:30px; width:300px; height:400px"></div>

<link href="js/ext-2.0/resources/css/ext-all.css" rel="stylesheet" type="text/css">
<script type="text/javascript">$('loading-msg').innerHTML = '正在加载JSUI组建...';</script>

<script language="javascript" type="text/javascript" src="js/ext-2.0/adapter/ext/ext-base.js"></script>
<script language="javascript" type="text/javascript" src="js/ext-2.0/ext-all.js"></script>
<script language="javascript" type="text/javascript" src="js/ext-2.0/source/locale/ext-lang-zh_CN.js"></script>


<script type="text/javascript">$('loading-msg').innerHTML = '正在初始化...';</script>

<script type="text/javascript" src="js/tree-edit-test.js"></script>
<script type="text/javascript">
   $('loading-msg').innerHTML = '初始化完毕!!';
   Ext.get('loadingTab').fadeOut({remove: true});//让加载标签消失     
</script>
</body>
</html>

分享到:
评论

相关推荐

    可自定义树节点的Tree组件

    - **可编辑性**:允许用户直接在树上修改节点内容,如重命名、删除等。 3. **交互自定义**: - **拖放功能**:允许用户通过拖放操作重新排列节点,或者将节点从一个树移动到另一个树。 - **多选模式**:提供单选...

    VC/MFC创建可编辑节点的树形控件

    这个控件允许用户不仅能够浏览层次化的数据,还能直接在树形结构中编辑节点文本,提供了更好的用户体验。以下是对这一主题的详细阐述: 首先,我们需要了解MFC中的CTreeCtrl类,它是Windows API中的HTREEITEM类型的...

    树节点绑定(EasyUI-Tree)内含数据库打开直接用

    - 节点操作:EasyUI Tree支持节点的添加、删除、编辑等操作,可以结合后端API实现这些功能。 - 点击事件:可以为每个节点绑定点击事件,实现节点点击后的业务逻辑。 综上所述,“树节点绑定(EasyUI-Tree)内含...

    可编辑节点的树形控件

    为了实现可编辑节点的功能,我们需要重载这两个消息的处理函数。 1. **重载消息映射**:在派生自CDialog或CFrameWnd的类中,我们需要添加对TVN_BEGINLABELEDIT和TVN_ENDLABELEDIT消息的处理。这可以通过在类的定义...

    layui-tree树形组件改写,可编辑、上移、下移、拖拽修改

    将文件直接复制到layui/lay/modules目录下,会覆盖layui原有的tree.js,调用方法与layui树形组件的适应方式一致,新增的方法可在文件中查看

    Vue代码示例,左边Tree,右边对Tree节点配置子表多条数据

    在这个场景中,Tree组件通常用于表示层次结构的数据,如组织架构或文件系统,而子表则用于展示与Tree节点相关的详细信息。 首先,让我们关注`DepartmentParamController.java`这个文件,这通常是后端Spring MVC或者...

    可编辑el-tree样式功能修改:修改icon、可编辑input、修改下拉展开icon位置

    对于“可编辑input”,el-tree 并不直接支持编辑节点文本,但可以通过 slot 实现。创建一个包含 input 的 slot,当点击节点时显示该 input,用户编辑后保存更新。这需要监听 `@node-click` 事件并处理编辑逻辑: ``...

    AjaxTree源码,AJAX动态获取节点的子节点

    - **AjaxTree.suo**:这是Visual Studio的用户选项文件,存储了用户在开发过程中的一些个性化设置和状态信息,不直接影响代码运行,但对开发环境的配置有作用。 - **AjaxTree**:这可能是一个包含实际代码和资源的...

    C# Winform Tree 使用示例

    - 编辑节点文本可以直接修改TreeNode的Text属性,如`treeView1.SelectedNode.Text = "新文本";` - 如果TreeNode包含其他复杂数据,可以修改Tag属性来更新附加信息。 4. **子节点删除** - 删除节点通常使用Remove...

    TreeView控件的节点拖动

    本项目重点在于实现`TreeView`控件的节点拖放(Drag and Drop)功能,以及双击编辑节点和拖动撤销功能。这些特性使得用户能够更加直观地操作和调整数据结构。 首先,`TreeView`节点的双击编辑功能是通过事件处理来...

    element el-tree组件的动态加载、新增、更新节点的实现

    如果节点是顶级节点(node.level 等于 0),则直接从后端获取顶层数据;如果节点非顶级,则根据父节点的 ID 获取其子节点数据。 在上述代码片段中,提供了 :load 属性的方法 loadNode 的实现逻辑。在动态加载节点...

    bootstrap-JsTree

    6. **交互性**:JsTree的交互性强,用户可以通过鼠标或键盘操作节点,例如拖放节点进行重新排序,右键菜单提供更多的操作选项,以及通过上下文菜单实现节点的快速编辑。 7. **可访问性**:JsTree考虑了无障碍性...

    jquery.jstree 增加节点的双击事件代码

    然而,在版本1.0-rc1中,jstree缺少了直接针对节点的双击事件的处理,这使得需要在特定操作,如双击打开节点编辑页面时,需要额外的代码来实现。 首先,需要理解的是jstree的节点选择事件"select_node.jstree"。这...

    VC.designed.edit.code.tree.control.rar_The Tree_tree control_vc

    - **编辑节点**:通过`EditLabel`函数启动编辑操作,允许用户修改节点文本。 - **响应用户事件**:实现消息处理函数,如`OnSelChanged`处理节点选择变化,`OnItemChanged`处理节点内容更改等。 - **自定义节点显示**...

    DeviceTree

    DeviceTree,全称为Device Tree,是嵌入式系统和Linux内核中用于描述...在Windows 7环境中,尽管不直接支持DeviceTree,但通过虚拟化技术和其他相关工具,开发者依然可以在这样的平台上进行DeviceTree相关的开发工作。

    Tab+Tree控件联合使用

    在Windows应用程序开发中,UI(用户界面)设计是至关重要的,因为它直接影响到用户的交互体验。本文将深入探讨如何在对话框中联合使用“Tab控件”和“Tree控件”,这两种控件在很多桌面应用中都非常常见,尤其适用于...

    js editor tree demo

    7. **可扩展性**:编辑器可能支持插件系统,允许用户添加自定义功能或主题。 8. **示例代码**:通过阅读源码,开发者可以学习如何构建类似的编辑器,理解其工作原理。 为了深入学习这个"js editor tree demo",你...

    springmvc-easyui-tree增删改

    在增删改操作中,我们可以创建一个窗口来显示添加新节点、编辑节点或确认删除的表单。窗口可以设置为可拖动、可调整大小,以及在操作完成后自动关闭。 7. **交互处理**:使用EasyUI的事件监听器,如`onClick`, `...

    tree&dialog;

    3. **对话框通信**: 为了使子对话框能够与主对话框或Tree Control交互,可以使用`AfxGetMainWnd`获取主窗口指针,或者通过成员变量直接引用。使用消息或事件通知机制更新树控件的状态。 **项目实施步骤** 1. **设计...

Global site tag (gtag.js) - Google Analytics