所谓布局,简单来说就是决定把什么东西放到什么位置上,对于管理软件来说,一般都是首部放标题,左边放菜单栏,空余的右下方用来显示具体的内容。本章将详细介绍EXT中布局的用法。
一、传统的布局方式
我们可以用Ext.Viewport类对整个页面进行整体布局,具体使用方法如下:
- varviewport=newExt.Viewport({
- layout:'border',
- items:[{
- region:'north',
- height:40,
- html:'<h1>薛敬明专栏</h1>'
- },{
- region:'west',
- width:100,
- html:'<p>菜单一</p><p>菜单二</p>'
- },{
- region:'center',
- html:'主要内容'
- }]
- });
效果图如图1所示:

图1 传统的布局形式
二、最常用的边框布局BorderLayout
Ext.layout.BorderLayout布局把整个布局区域分成东、西、南、北、中5个部分,除了中间区域以外,其他的区域又都是可以省略的,因此我们可以利用它制作出更复杂、更灵活的布局。具体代码如下:
- varviewport2=newExt.Viewport({
- layout:'border',
- items:[{
- region:'north',html:'north'
- },{
- region:'south',html:'south'
- },{
- region:'east',html:'east'
- },{
- region:'west',html:'west'
- },{
- region:'center',html:'center'
- }]
- });
效果图如图2所示。

图2 使用BorderLayout的布局
注意:center是绝对不能省略的,如果items中缺少了region:'center'就会报错,会造成程序中断。
2.1 设置子区域的大小
我们仅仅需要添加width和height参数,这样就可以指定每个子区域的大小了。但是,north和south两个区域只能指定高度值,宽度值由BorderLayout自动计算;east和west只能指定宽度值,高度值由BorderLayout自动计算;center区域的大小由其他4个部分决定。设置的代码如下所示:
- varviewport2=newExt.Viewport({
- layout:'border',
- items:[{
- region:'north',html:'north',height:120
- },{
- region:'south',html:'south'
- },{
- region:'east',html:'east'
- },{
- region:'west',html:'west',width:40
- },{
- region:'center',html:'center'
- }]
- });
2.2 使用split并限制它的范围
使用split后,我们可以允许用户自动拖放以改变某一个区域的大小,实现的方式只要设置split:true参数即可实现,具体代码如下。
实现效果图如图3所示。
- varviewport=newExt.Viewport({
- layout:'border',
- items:[{
- region:'north',
- height:40,
- html:'<h1>薛敬明专栏</h1>'
- },{
- region:'west',
- html:'<p>菜单一</p><p>菜单二</p>',
- width:100,
- split:true
- },{
- region:'center',
- html:'主要内容'
- }]
- });

图3 设置split:true后的效果图
2.3 子区域的展开和折叠
该功能可以让一个区域展开和折叠(相当于隐藏),实现的方式只需要配置几个参数即可,具体代码如下,主要配置参数是collapsible:true,这个参数激活了某个区域的折叠功能,而且前面的title参数也是必须设置的。实现代码和效果图如下所示。
- varviewport=newExt.Viewport({
- layout:'border',
- items:[{
- region:'north',
- height:40,
- html:'<h1>薛敬明专栏</h1>'
- },{
- region:'west',
- html:'<p>菜单一</p><p>菜单二</p>',
- title:'west',
- width:100,
- collapsible:true
- },{
- region:'center',
- html:'主要内容'
- }]
- });

图4 带有折叠效果的布局
三、制作伸缩菜单的布局——Accordion
Accordion是EXT中默认布局的一部分,如果想用它,直接将区域加上layout:'accordion'即可,其他部分基本无需改动。我们利用ViewPort制作出只有west和center两个区域的BorderLayout,在west部分放上Accordion,实现方式如下面代码所示。
- varviewport=newExt.Viewport({
- layout:'border',
- items:[{
- region:'west',
- width:200,
- layout:'accordion',
- layoutConfig:{
- titleCollapse:true,
- animate:true,
- activeOnTop:false
- },
- items:[{
- title:'第一栏',
- html:'第一栏'
- },{
- title:'第二栏',
- html:'第二栏'
- },{
- title:'第三栏',
- html:'第三栏'
- }]
- },{
- region:'center',
- split:true,
- border:true
- }]
- });
效果图如图5所示。

图5 使用了Accordion的示例
设置了layout:'accordion'后,再使用items添加3个元素,记得每个子元素里都要加上title参数,accordion没有提供默认的标题,不设置标题是一定会出错的。与布局有关的配置项都写到layoutConfig里。
所谓布局,简单来说就是决定把什么东西放到什么位置上,对于管理软件来说,一般都是首部放标题,左边放菜单栏,空余的右下方用来显示具体的内容。本章将详细介绍EXT中布局的用法。
一、传统的布局方式
我们可以用Ext.Viewport类对整个页面进行整体布局,具体使用方法如下:
- varviewport=newExt.Viewport({
- layout:'border',
- items:[{
- region:'north',
- height:40,
- html:'<h1>薛敬明专栏</h1>'
- },{
- region:'west',
- width:100,
- html:'<p>菜单一</p><p>菜单二</p>'
- },{
- region:'center',
- html:'主要内容'
- }]
- });
效果图如图1所示:

图1 传统的布局形式
二、最常用的边框布局BorderLayout
Ext.layout.BorderLayout布局把整个布局区域分成东、西、南、北、中5个部分,除了中间区域以外,其他的区域又都是可以省略的,因此我们可以利用它制作出更复杂、更灵活的布局。具体代码如下:
- varviewport2=newExt.Viewport({
- layout:'border',
- items:[{
- region:'north',html:'north'
- },{
- region:'south',html:'south'
- },{
- region:'east',html:'east'
- },{
- region:'west',html:'west'
- },{
- region:'center',html:'center'
- }]
- });
效果图如图2所示。

图2 使用BorderLayout的布局
注意:center是绝对不能省略的,如果items中缺少了region:'center'就会报错,会造成程序中断。
2.1 设置子区域的大小
我们仅仅需要添加width和height参数,这样就可以指定每个子区域的大小了。但是,north和south两个区域只能指定高度值,宽度值由BorderLayout自动计算;east和west只能指定宽度值,高度值由BorderLayout自动计算;center区域的大小由其他4个部分决定。设置的代码如下所示:
- varviewport2=newExt.Viewport({
- layout:'border',
- items:[{
- region:'north',html:'north',height:120
- },{
- region:'south',html:'south'
- },{
- region:'east',html:'east'
- },{
- region:'west',html:'west',width:40
- },{
- region:'center',html:'center'
- }]
- });
2.2 使用split并限制它的范围
使用split后,我们可以允许用户自动拖放以改变某一个区域的大小,实现的方式只要设置split:true参数即可实现,具体代码如下。
实现效果图如图3所示。
- varviewport=newExt.Viewport({
- layout:'border',
- items:[{
- region:'north',
- height:40,
- html:'<h1>薛敬明专栏</h1>'
- },{
- region:'west',
- html:'<p>菜单一</p><p>菜单二</p>',
- width:100,
- split:true
- },{
- region:'center',
- html:'主要内容'
- }]
- });

图3 设置split:true后的效果图
2.3 子区域的展开和折叠
该功能可以让一个区域展开和折叠(相当于隐藏),实现的方式只需要配置几个参数即可,具体代码如下,主要配置参数是collapsible:true,这个参数激活了某个区域的折叠功能,而且前面的title参数也是必须设置的。实现代码和效果图如下所示。
- varviewport=newExt.Viewport({
- layout:'border',
- items:[{
- region:'north',
- height:40,
- html:'<h1>薛敬明专栏</h1>'
- },{
- region:'west',
- html:'<p>菜单一</p><p>菜单二</p>',
- title:'west',
- width:100,
- collapsible:true
- },{
- region:'center',
- html:'主要内容'
- }]
- });

图4 带有折叠效果的布局
三、制作伸缩菜单的布局——Accordion
Accordion是EXT中默认布局的一部分,如果想用它,直接将区域加上layout:'accordion'即可,其他部分基本无需改动。我们利用ViewPort制作出只有west和center两个区域的BorderLayout,在west部分放上Accordion,实现方式如下面代码所示。
- varviewport=newExt.Viewport({
- layout:'border',
- items:[{
- region:'west',
- width:200,
- layout:'accordion',
- layoutConfig:{
- titleCollapse:true,
- animate:true,
- activeOnTop:false
- },
- items:[{
- title:'第一栏',
- html:'第一栏'
- },{
- title:'第二栏',
- html:'第二栏'
- },{
- title:'第三栏',
- html:'第三栏'
- }]
- },{
- region:'center',
- split:true,
- border:true
- }]
- });
效果图如图5所示。

图5 使用了Accordion的示例
设置了layout:'accordion'后,再使用items添加3个元素,记得每个子元素里都要加上title参数,accordion没有提供默认的标题,不设置标题是一定会出错的。与布局有关的配置项都写到layoutConfig里。
分享到:
相关推荐
EXTJS4自学手册——EXT基本方法、属性(onReady、define、create) EXTJS4自学手册——EXT基本方法、属性(apply、applyIf、constructor) EXTJS4自学手册——EXT基本方法、属性(mixins、statics、require) EXTJS...
Extjs4API文档阅读(三)——布局和容器[参照].pdf
### Extjs4 API文档阅读(三)——布局和容器 #### 一、容器与基本概念 在Ext JS中,容器(Container)是一种特殊的组件,能够容纳其他组件。这使得Ext JS非常灵活,能够构建复杂的用户界面。容器是构成Ext JS应用...
【标题】"第十个范例——布局之TabContainer"是一个关于使用TabContainer进行页面布局的IT技术主题。在Web开发中,布局设计是至关重要的,TabContainer作为一种常见的UI组件,常用于实现多面板切换,帮助用户更好地...
本文将深入探讨如何在ExtJs中使用`FormPanel`组件结合`form`和`column`布局属性来实现横向布局,即在一个表单中元素能够按照列分布,形成一种更为直观和用户友好的界面设计。 ### 一、理解`FormPanel`及其属性 `...
在ExtJS4.0中,数据处理的关键是从传统的面向过程转向面向对象的方法,这主要体现在Model、Store和Proxy的使用上。Model作为数据模型,负责定义数据结构和业务逻辑,类似于实体类。例如,在C#或Java中,我们通常会...
extjs设计实例包含Grid和布局的设计
适用于ExtJS4、ExtJS5 MD5加密算法!
Extjs经典教程,关于面板布局的学习资料,图文并茂,值得一看
表格控件(Grid)是ExtJS的核心组件之一,其功能强大,包括列排序、数据缓存、拖放操作、列隐藏、行号显示、列汇总和单元格编辑等。创建一个基本的Grid,需要定义列模型(ColumnModel),其中包含了每一列的标题和...
4. 使用`load`方法或通过`expandNode`、`collapseNode`等方法来控制节点的加载和折叠状态。 综上所述,EXTJS4中的Panel的accordion布局和TreePanel的动态导航是两种强大而灵活的功能,能够帮助开发者构建出丰富多样...
### ExtJS布局之border实例详解 #### 一、Border布局简介 在ExtJS框架中,`border`布局是一种非常常见的布局方式,它将容器划分为五个区域:north(北)、south(南)、east(东)、west(西)以及center(中心)。...
- **Ajax 请求**:使用 ExtJS 的 Ajax 功能发送请求,包括 GET 和 POST 等不同类型的请求。 - **响应处理**:学习如何处理服务器返回的响应数据,并根据需要更新页面内容。 #### 九、ExtJS 4.0 的 core 包和 Ext 类...
Extjs 布局生成器,可以生产各布局查看布局代码
Extjs4 API文档阅读(三)——布局和容器 Extjs4 API文档阅读(二)——MVC构架(上) Extjs4 API文档阅读(二)——MVC构架(下) Extjs4 API文档阅读(四)——Data ExtJS4 Grid组件 Extjs4 TreeGrid Extjs4 TreePanel...
ExtJS布局是构建用户界面的关键部分,特别是在使用ExtJS库时。本文主要讲解ExtJS的Column布局,一种非常灵活的布局方式,可以帮助开发者创建复杂的、响应式的用户界面。 Column布局在ExtJS中用于将容器(如Panel)...
**Nutz+ExtJS示例教程——后台Service实现** Nutz和ExtJS是两种不同的技术栈,它们在Web开发中有着各自的应用。Nutz是一款基于Java的轻量级框架,它提供了全面的Web开发解决方案,包括ORM、AOP、IOC等。而ExtJS则是...
在使用ExtJS3.2的列布局时,你需要创建一个容器(如Panel),然后设置其`layout`属性为`column`。接下来,你可以通过添加子组件(items)来定义每列的内容。每个子组件都可以有自己的宽度,通过`width`属性来指定。...