博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ExtJS3 布局
阅读量:6542 次
发布时间:2019-06-24

本文共 2938 字,大约阅读时间需要 9 分钟。

前端开发中,页面布局是首先要考虑的内容,今天又看了Ext中的局部,小结如下。

布局中最常用的是BorderLayout:此种方式默认将页面划分为5个区域,分别是north、west、center、east、south,其中north和south只能调整height属性,west、east和center只能调整width属性,center是必不可少的部分,其他部分可选。

另外一种布局方式为Accodion(可折叠的、手风琴式):可参考QQ中分组的形式,一般将此种方式嵌套入其他布局中。

CardLayout可以实现向导式的页面显示,另外一种布局方式,用于控制位置和大小的布局为AnchorLayout和AbsoluteLayout,AnchorLayout可以设定空间所锚定的位置,具体而言是使用anchor:r b这样的格式,其中r表示相对于right一侧,b则表示相对于bottom一侧,可以使用负值,此时表示子组件的大小=整体大小-r(or b),anchor:-50 -100 表示此组件的右边界距离锚定控件右边界的距离为50px,距离下边界距离为100px。AbsoluteLayout通过指定x、y参数来控制布局。

其他布局方式还有分列式布局和表格状布局,均比较简单。

举个例子,先上效果图

可以很明显看出来大框架使用的是borderLayout,在west部分使用了树形控件,center部分嵌套了一个borderLayout,north部分放置表格,center部分放置表单。

// 表格配置开始    var cm = new Ext.grid.ColumnModel([        {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 ds = new Ext.data.Store({        proxy: new Ext.data.MemoryProxy(data),        reader: new Ext.data.ArrayReader({}, [            {name: 'id'},            {name: 'name'},            {name: 'descn'}        ])    });    ds.load();    var grid = new Ext.grid.GridPanel({        ds: ds,        cm: cm,        title: 'center-north',        region: 'north'    });    // 表格配置结束    // 树形配置开始    var tree = new Ext.tree.TreePanel({        loader: new Ext.tree.TreeLoader({dataUrl: '10-05.tree.txt'}),        title: 'west',        region: 'west',        split: true,        border: true,        collapsible: true,        width: 120,        minSize: 80,        maxSize: 200    });    var root = new Ext.tree.AsyncTreeNode({text:'偶是根'});    tree.setRootNode(root);    root.expand();    // 树形配置结束    // 表单配置开始    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,{            region: 'center',            split: true,            border: true,            layout: 'border',            items: [grid,form]        }]    });    // 布局结束

应用时参考这个可以完成更复杂的页面布局。

刚准备写,就看到了一篇介绍ExtJS Layout的文章,贴上地址

http://www.cnblogs.com/fsjohnhuang/archive/2013/02/19/2917233.html

相关书籍可参考:《深入浅出Ext JS》

转载于:https://www.cnblogs.com/ronaldhan/p/3286033.html

你可能感兴趣的文章
RESTful API 设计最佳实践
查看>>
用于构建 RESTful Web 服务的多层架构
查看>>
转载C#加密方法
查看>>
eclipse中类和方法添加作者日期说明
查看>>
Python 精要参考(第二版) 第二章 语法及代码约定
查看>>
新学期的合作
查看>>
Beginners MYSQL Database Tutorial# How to install MySQL on Ubuntu
查看>>
PHP之数组学习
查看>>
PHP判断远程文件是否存在
查看>>
JS 转义&反转义 HTML标签、特殊字符
查看>>
KVC集合操作符
查看>>
[转载]ext4文件系统的delalloc选项造成单次写延迟增加的分析
查看>>
Entity Framework 小知识(二)
查看>>
Oracle 18c新特性详解:In-Memory 专题
查看>>
2016年终总结
查看>>
java多线程(thread/runnable)
查看>>
vue-cli3.0新建项目,卡在node-sass后创建失败如何解决?
查看>>
网络之同源策略
查看>>
「BATJ面试系列」并发编程之happens-before详解
查看>>
实验二
查看>>