Ext4.2学习之布局

首先看一下结果图
在这里插入图片描述
首先一个完整的布局一般都是以Ext.Viewport对象包裹的,因为这个图像可以自动适应不同浏览器大小。在这里使用了layout: 'border'布局方式,所以分为了东南西北中四个板块。也就是所谓的上下左右和中间,在这里上面是一个标题栏。而下面就是一个状态栏。
在这里插入图片描述
而左侧放的是一个TreePanel,通过读取文本中的数据构造了一棵树(需要指定叶子节点)

[
    {text:'01',children:[
        {text:'01-01',leaf:true},
        {text:'01-02',children:[
            {text:'01-02-01',leaf:true},
            {text:'01-02-02',leaf:true}
        ]},
        {text:'01-03',leaf:true}
    ]},
    {text:'02',leaf:true}
]

在这里插入图片描述
主语split和collapsible参数,通过这两个参数可以实现左侧菜单栏的左右大小调节和隐藏
在这里插入图片描述
最后中间部位如下
在这里插入图片描述
其实这块也使用了layout: 'border'布局
在这里插入图片描述
分别包含了一个表格控件和表单控件,然后在控件中再指定相应的region
在这里插入图片描述
在这里插入图片描述
完整代码如下所示

<!DOCTYPE html>
<html>
<head>
    <title>Hello World</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <link type="text/css" rel="stylesheet" href="ext-4/resources/css/ext-all.css"/>
    <script type="text/javascript" src="ext-4/ext-all.js"></script>
    <script type="text/javascript" src="ext-4/locale/ext-lang-zh_CN.js"></script>
    <style type="text/css">
        p {
            margin: 5px;
        }

        .settings {
            background-image: url(icons/fam/folder_wrench.png);
        }

        .nav {
            background-image: url(icons/fam/folder_go.png);
        }

        .info {
            background-image: url(icons/fam/information.png);
        }
    </style>
    <script type="text/javascript">
        Ext.onReady(function () {

            // 表格配置开始
            var columns = [
                {header: '编号', dataIndex: 'id'},
                {header: '名称', dataIndex: 'name'},
                {header: '描述', dataIndex: 'descn'}
            ];

            var data = [
                ['1', 'name1', 'descn1'],
                ['2', 'name2', 'descn2'],
                ['3', 'name3', 'descn3'],
                ['4', 'name4', 'descn4'],
                ['5', 'name5', 'descn5']
            ];

            var store = new Ext.data.ArrayStore({
                data: data,
                fields: [
                    {name: 'id'},
                    {name: 'name'},
                    {name: 'descn'}
                ]
            });
            store.load();

            var grid = new Ext.grid.GridPanel({
                store: store,
                columns: columns,
                title: 'center-north',
                region: 'north'
            });
            // 表格配置结束

            // 树形配置开始
            var tree = new Ext.tree.TreePanel({
                store: new Ext.data.TreeStore({
                    proxy: {
                        type: 'ajax',
                        url: '13-05.tree.txt'
                    },
                    root: {
                        expand: true,
                        text: '我是根'
                    }
                }),
                title: 'west',
                region: 'west',
                split: true,
                border: true,
                collapsible: true,
                width: 120,
                minSize: 80,
                maxSize: 200
            });
            // 树形配置结束

            // 表单配置开始
            var form = new Ext.form.FormPanel({
                defaultType: 'textfield',
                labelAlign: 'right',
                title: 'form',
                labelWidth: 50,
                frame: true,
                width: 220,

                title: 'center-center',
                region: 'center',

                items: [{
                    fieldLabel: '文本框',
                    anchor: '90%'
                }],
                buttons: [{
                    text: '按钮'
                }]
            });
            // 表单配置结束

            // 布局开始
            var viewport = new Ext.Viewport({
                layout: 'border',
                items: [{
                    region: 'north',
                    contentEl: 'north-div',
                    height: 80,
                    bodyStyle: 'background-color:#BBCCEE;'
                }, {
                    region: 'south',
                    contentEl: 'south-div',
                    height: 20,
                    bodyStyle: 'background-color:#BBCCEE;'
                }, tree, {  // 此处在tree里面已经定义了region为west
                    region: 'center',
                    split: true,
                    border: true,
                    layout: 'border',
                    items: [grid, form]
                }]
            });
            // 布局结束

        });
    </script>
</head>
<body>
<div id="north-div">标题栏:viewport加panel实现复杂布局</div>
<div id="south-div">状态栏:Copyright by www.mossle.com</div>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lang20150928

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值