ExtJS4.2 树形表格

效果图:

jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>  
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
<title>Hello Extjs4.2</title>  
<link href="extjs/resources/css/ext-all.css" rel="stylesheet">  
<script type="text/javascript" src="extjs/ext-all.js"></script>
<script type="text/javascript" src="extjs/locale/ext-lang-zh_CN.js"></script>
<script type="text/javascript">  
Ext.onReady(function(){  
    Ext.QuickTips.init();  
 
    //we want to setup a model and store instead of using dataUrl  
    Ext.define('Task', {  
        extend: 'Ext.data.Model',  
        fields: [ 
            {name: 'task',     type: 'string'},  
            {name: 'user',     type: 'string'},  
            {name: 'duration', type: 'string'}  
        ]  
    });  
    var store = Ext.create('Ext.data.TreeStore', {  
        model: 'Task',  
        proxy: {  
            type: 'ajax',  
            //the store will get the content from the .json file  
            url: 'grid-filter.json'  
        },  
        folderSort: true  
    });  
      
  //Ext.ux.tree.TreeGrid在UX扩展中也有,但不常用,您可以简单地使用一个tree.TreePanel  
    var tree = Ext.create('Ext.tree.Panel', {  
        title: 'Core Team Projects',  
        width: 500,  
        height: 300,  
        renderTo: 'treegrid',  
        collapsible: true,  
        useArrows: true,  
        rootVisible: false,  
        store: store,  
        multiSelect: true,  
        singleExpand: true,  
          
      //the 'columns' property is now 'headers'  
        columns: [{  
            xtype: 'treecolumn', //this is so we know which column will show the tree  
            text: 'Task',  
            flex: 2,  
            sortable: true,  
            dataIndex: 'task'  
        },{  
            //we must use the templateheader component so we can use a custom tpl  
            xtype: 'templatecolumn',  
            text: 'Duration',  
            flex: 1,  
            sortable: true,  
            dataIndex: 'duration',  
            align: 'center',  
            //add in the custom tpl for the rows  
            tpl: Ext.create('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');  
                    }  
                }  
            })  
        },{  
            text: 'Assigned To',  
            flex: 1,  
            dataIndex: 'user',  
            sortable: true  
        }, {  
            xtype: 'checkcolumn',  
            header: 'Done',  
            dataIndex: 'done',  
            width: 40,  
            stopSelection: false  
        }, {  
            text: 'Edit',  
            width: 40,  
            menuDisabled: true,  
            xtype: 'actioncolumn',  
            tooltip: 'Edit task',  
            align: 'center',  
            icon: '../MyDemo/images/edit.png',  
            handler: function(grid, rowIndex, colIndex, actionItem, event, record, row) {  
                Ext.Msg.alert('Editing' + (record.get('done') ? ' completed task' : '') , record.get('task'));  
            }  
        }]  
    });
});  
</script>  
</head>  
<body>  
<h1>我的ExtJS4.2学习之路</h1>  
<hr />  
作者:阿杰
开始日期:2016年3月3日14:58:54  
<h2>深入浅出ExtJS之树形表格</h2>  
<div id="treegrid"></div>
</body> 

</html>  

json数据:

{"text":".","children": [  
    {  
        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',  
                done: true  
            },{  
                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',  
                done: true  
            },{  
                task: 'Fix lights',  
                duration: .75,  
                user: 'Tommy Maintz',  
                leaf: true,  
                iconCls: 'task',  
                done: true  
            }, {  
                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-folder',  
            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  
            }]  
        }]  
    }  
]} 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值