`
刘金剑
  • 浏览: 147551 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Extjs TreeGrid加载数据报未组织好

    博客分类:
  • Ext
 
阅读更多

想要实现 TreeGrid的效果,打开官方例子却看不到效果,怎么办呢?我是这样实现的

/*!
 * Ext JS Library 3.2.0
 * Copyright(c) 2006-2010 Ext JS, Inc.
 * licensing@extjs.com
 * http://www.extjs.com/license
 */

Ext.onReady(function() {
    Ext.QuickTips.init();
 
 var mydata = [
{
    task:'Project: Shopping',duration:13.25,user:'Tommy Maintz',iconCls:'task-folder',expanded: true,
    children:[
     {task:'Housewares',duration:1.25,user:'Tommy Maintz',iconCls:'task-folder',
  children:[
   {task:'Kitchen supplies',duration:0.25,user:'Tommy Maintz',leaf:true,iconCls:'task'},
   {task:'Groceries',duration:.4,user:'Tommy Maintz',leaf:true,iconCls:'task'},
   {task:'Cleaning supplies',duration:.4,user:'Tommy Maintz',leaf:true,iconCls:'task'},
   {task: 'Office supplies',duration: .2,user: 'Tommy Maintz',leaf: true,iconCls: 'task'}
  ]
     },
     {
  task:'Remodeling',duration:12,user:'Tommy Maintz',iconCls:'task-folder',expanded: true,
  children:[
   {task:'Retile kitchen',duration:6.5,user:'Tommy Maintz',leaf:true,iconCls:'task'},
   {task:'Paint bedroom',duration: 2.75,user:'Tommy Maintz',iconCls:'task-folder',
    children: [
      {task: 'Ceiling',duration: 1.25,user: 'Tommy Maintz',iconCls: 'task',leaf: true},
      {task: 'Walls',duration: 1.5,user: 'Tommy Maintz',iconCls: 'task',leaf: true}
       ]
   },
          {task:'Decorate living room',duration:2.75,user:'Tommy Maintz',leaf:true,iconCls:'task'},
          {task: 'Fix lights',duration: .75,user: 'Tommy Maintz',leaf: true,iconCls: 'task'},
          {task: 'Reattach screen door',duration: 2,user: 'Tommy Maintz',leaf: true,iconCls: 'task'}
         ]
     }
    ]
},
{  task:'Project: Testing',duration:2,user:'Core Team',iconCls:'task-folder',
   children:[
    { task: 'Mac OSX',duration: 0.75,user: 'Tommy Maintz',iconCls: 'task-folder',
  children: [
   {task: 'FireFox',duration: 0.25,user: 'Tommy Maintz',iconCls: 'task',leaf: true},
   {task: 'Safari',duration: 0.25,user: 'Tommy Maintz',iconCls: 'task',leaf: true},
   {task: 'Chrome',duration: 0.25,user: 'Tommy Maintz',iconCls: 'task',leaf: true}
  ]
   },{ task: 'Windows',duration: 3.75,user: 'Darrell Meyer',iconCls: 'task-folder',
  children: [
   {task: 'FireFox',duration: 0.25,user: 'Darrell Meyer',iconCls: 'task',leaf: true},
   {task: 'Safari',duration: 0.25,user: 'Darrell Meyer',iconCls: 'task',leaf: true},
   {task: 'Chrome',duration: 0.25,user: 'Darrell Meyer',iconCls: 'task',leaf: true},
   {task: 'Internet Exploder',duration: 3,user: 'Darrell Meyer',iconCls: 'task',leaf: true}
  ]
   },{ task: 'Linux',duration: 0.5,user: 'Aaron Conran',iconCls: 'task',
  children: [
   {task: 'FireFox',duration: 0.25,user: 'Aaron Conran',iconCls: 'task',leaf: true},
   {task: 'Chrome',duration: 0.25,user: 'Aaron Conran',iconCls: 'task',leaf: true}
  ]
   }
   ]
}
];
 
    var tree = new Ext.ux.tree.TreeGrid({
        title: 'Core Team Projects',
        width: 700,
        height: 300,
        renderTo: Ext.getBody(),
        enableDD: true,

        columns:[{
            header: 'Task',
            dataIndex: 'task',
            width: 230,
   editor: new Ext.form.TextField({
                allowBlank: false
            })
        },{
            header: 'Duration',
            width: 100,
            dataIndex: 'duration',
            align: 'center',
            sortType: 'asFloat',
            tpl: new Ext.XTemplate('{duration:this.formatHours}', {
                formatHours: function(v) {
                    if(v < 1) {
                        return Math.round(v * 60) + ' mins';
                    } else if (Math.floor(v) !== v) {
                        var min = v - Math.floor(v);
                        return Math.floor(v) + 'h ' + Math.round(min * 60) + 'm';
                    } else {
                        return v + ' hour' + (v === 1 ? '' : 's');
                    }
                }
            }),
   editor: new Ext.form.NumberField({
                allowBlank: false,
                allowDecimals: true
            })
        },{
            header: 'Assigned To',
            width: 150,
            dataIndex: 'user',
   editor: new Ext.form.TextField({
                allowBlank: false
            })
        },{
   header: '操作',
            width: 130,
            buttons: ['update', 'remove'],
            buttonText: ['编辑', '删除']
  }],

        //dataUrl: 'treegrid-data.json'
  requestApi: {
            update: 'treegrid-data.json',
            remove: 'treegrid-data.json'
        }
       
    });
 
 var root = new Ext.tree.TreeNode({
        text: '根节点',
        expanded: true
    });
 tree.setRootNode(root);
 
  var nodes = {};
  nodes.children = mydata;/*TreeGrid的json数据[{……},{……}]*/
 function appendChild(node, o){
  if (o.children != null && o.children.length > 0) {
   for (var a = 0; a < o.children.length; a++) {
    var n = new Ext.tree.TreeNode({
     task:o.children[a].task,
     duration:o.children[a].duration,
     user:o.children[a].user,
     iconCls:o.children[a].iconCls
    });
    node.appendChild(n);
    appendChild(n, o.children[a]);
   }
  }
 }
 appendChild(root, nodes);
 
 new Ext.ButtonGroup({
        renderTo: Ext.getBody(),
        title: 'States',
        style: 'padding:20px 50px;',
        columns: 2,
        items: [{
            text: 'Hidden',
            width: 100,
            handler: function() {
                tree.hideButton('node-1', 'update');
            }
        }, {
            text: 'Show',
            width: 100,
            handler: function() {
                tree.showButton('node-1', 'update');
            }
        }]
    });
 
});


 

  • 大小: 53.2 KB
分享到:
评论
5 楼 堕落星辰 2014-10-13  
太谢谢了!  找了好久 就你这个例子能显示
4 楼 猫小小质 2012-04-23  
找了好几天 就你这个例子能运行起来,爱死你了
3 楼 鱼丸粗面 2012-02-21  
http://dev.sencha.com/deploy/ext4.0.1/examples/tree/treegrid.html就像这个网站可以加载数据,但下载了4.0.1的打开examples/tree/treegrid.html就无法加载数据
2 楼 鱼丸粗面 2012-02-21  
你好!为什么从官网上下的好几个版本,从2.0到4.0 treegrid都不能加载数据。
1 楼 jixuezhiyuan 2011-12-31  
哥们,谢了啊。找了那么多关于数据格式的就你这个最有用。

相关推荐

    extjs4带checked的treegrid.rar

    我们需要定义好数据模型(Model),并配置好数据源(proxy)来加载数据。 4. **TreeNodes**: TreeGrid中的每一行对应一个TreeNode。TreeNode可以有自己的属性,如文本、图标等,也可以包含子节点,形成树状结构。 ...

    ext 可编辑treegrid组件

    在EXT框架中,TreeGrid是一个结合了树形结构和数据网格的组件,它允许用户同时展示层次化的数据和表格数据。"可编辑TreeGrid组件"则是EXT库的一个扩展,提供了在树形网格中直接编辑单元格的能力,极大地提升了用户在...

    EXTJS 4 树形表格组件使用示例

    在提供的压缩包文件"extjs4.1_TreeGrid"中,可能包含了一些EXTJS 4树形表格组件的示例代码和资源,通过学习和分析这些示例,你可以更好地理解如何在项目中应用这个组件。 总结来说,EXTJS 4的树形表格组件是一个...

    TreeGrid

    在Web开发中,TreeGrid常用于组织复杂的、有层级的数据,例如部门与员工的关系、文件系统的目录结构等。这种组件能够帮助用户更直观地理解和操作数据。 在《TreeGrid》这篇博文中,作者可能详细介绍了如何在Web应用...

    Extjs动态树的实现以及节点拖拽

    这种功能在各种应用场景中非常有用,如文件系统、组织结构或层级数据的展示。 首先,我们来看如何处理ExtJS TreeGrid的叶子节点拖拽问题。在ExtJS 3.1版本中,默认情况下,节点不能被拖放到叶子节点上。这是因为树...

    一段经典的JS组织架构图

    组织架构图在EXTJS中通常被实现为一个TreePanel或者TreeGrid,它们都是EXTJS的树形组件,可以显示层次结构的数据。以下是一些关于EXTJS创建组织架构图的关键知识点: 1. **数据模型(Model)**:首先,我们需要定义...

    基于ext很不错的TreeGridEditor树表格

    - 数据绑定:可以与各种数据源(如JSON、XML或内存中的数据模型)进行绑定,实现动态数据加载和更新。 - 排序和过滤:支持对表格数据进行排序和过滤,提供更好的数据浏览体验。 - 表格样式:支持自定义列宽、样式...

    Ext用户扩展控件-----树形表格

    首先,树形表格的核心在于它将数据组织成树状结构,每个节点可以展开或折叠,显示其子节点。这种布局方式适用于展示具有层级关系的数据,如文件系统、组织架构或产品类别等。而"Ext用户扩展控件"则意味着开发人员...

    jQueryEasyUI介绍.docx

    - **Tree(树)与 Treegrid(树形表格)**:用于组织和展示层次结构的数据。 - **其他**:Messager(消息框)提供弹出通知和提示,增强用户体验。 使用 jQuery EasyUI 的优点在于其简洁的 API,多种预设的主题,...

    jQuery前端开发实战教程.pdf

    如果数据未预加载,组件可能无法正确创建,通常需要先通过Ajax获取数据。 这些知识点涵盖了jQuery的基本操作、动画效果、选择器、事件处理、插件使用以及在移动开发中的应用,是jQuery开发的基础。理解并熟练运用...

Global site tag (gtag.js) - Google Analytics