想要实现 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
分享到:
相关推荐
我们需要定义好数据模型(Model),并配置好数据源(proxy)来加载数据。 4. **TreeNodes**: TreeGrid中的每一行对应一个TreeNode。TreeNode可以有自己的属性,如文本、图标等,也可以包含子节点,形成树状结构。 ...
在EXT框架中,TreeGrid是一个结合了树形结构和数据网格的组件,它允许用户同时展示层次化的数据和表格数据。"可编辑TreeGrid组件"则是EXT库的一个扩展,提供了在树形网格中直接编辑单元格的能力,极大地提升了用户在...
在提供的压缩包文件"extjs4.1_TreeGrid"中,可能包含了一些EXTJS 4树形表格组件的示例代码和资源,通过学习和分析这些示例,你可以更好地理解如何在项目中应用这个组件。 总结来说,EXTJS 4的树形表格组件是一个...
在Web开发中,TreeGrid常用于组织复杂的、有层级的数据,例如部门与员工的关系、文件系统的目录结构等。这种组件能够帮助用户更直观地理解和操作数据。 在《TreeGrid》这篇博文中,作者可能详细介绍了如何在Web应用...
这种功能在各种应用场景中非常有用,如文件系统、组织结构或层级数据的展示。 首先,我们来看如何处理ExtJS TreeGrid的叶子节点拖拽问题。在ExtJS 3.1版本中,默认情况下,节点不能被拖放到叶子节点上。这是因为树...
组织架构图在EXTJS中通常被实现为一个TreePanel或者TreeGrid,它们都是EXTJS的树形组件,可以显示层次结构的数据。以下是一些关于EXTJS创建组织架构图的关键知识点: 1. **数据模型(Model)**:首先,我们需要定义...
- 数据绑定:可以与各种数据源(如JSON、XML或内存中的数据模型)进行绑定,实现动态数据加载和更新。 - 排序和过滤:支持对表格数据进行排序和过滤,提供更好的数据浏览体验。 - 表格样式:支持自定义列宽、样式...
首先,树形表格的核心在于它将数据组织成树状结构,每个节点可以展开或折叠,显示其子节点。这种布局方式适用于展示具有层级关系的数据,如文件系统、组织架构或产品类别等。而"Ext用户扩展控件"则意味着开发人员...
- **Tree(树)与 Treegrid(树形表格)**:用于组织和展示层次结构的数据。 - **其他**:Messager(消息框)提供弹出通知和提示,增强用户体验。 使用 jQuery EasyUI 的优点在于其简洁的 API,多种预设的主题,...
如果数据未预加载,组件可能无法正确创建,通常需要先通过Ajax获取数据。 这些知识点涵盖了jQuery的基本操作、动画效果、选择器、事件处理、插件使用以及在移动开发中的应用,是jQuery开发的基础。理解并熟练运用...