- 浏览: 2306929 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (314)
- JAVA基础知识 (54)
- Java-IO/FIle (16)
- Java-JDBC (4)
- JAVA-新增特性-注解 (3)
- Java-枚举 (2)
- Java-泛型 (1)
- Java-多线程 (15)
- Java-XML (4)
- Java-JMS(消息服务) (4)
- Java-JVM (0)
- Web Service服务 (7)
- Jsp (10)
- js (18)
- Struts框架 (11)
- Spring框架 (29)
- Hibernate框架 (28)
- Spring Boot框架 (2)
- ExtJS前端框架 (29)
- Jquery js库 (8)
- JUnit框架 (8)
- Selenium 测试 (1)
- NoSql---Redis (6)
- ORACLE数据库 (45)
- MySQL数据库 (4)
- tomcat (3)
- Nginx反向代理服务器 (4)
- web应用服务器通用知识 (3)
- 开发工具IDE (14)
- UML建模 (1)
- SVN CVS 版本管理 (6)
- git 分布式版本管理 (4)
- 报表设计 (5)
- 文件上传下载 (2)
- 数据算法 (1)
- 存储过程 (5)
- JSON 相关 (1)
- OGNL表达式 (3)
- Util工具包 (9)
- 设计模式 (15)
- linux 相关 (3)
- life think (3)
- 工作流管理框架 (1)
- 大数据-Hadoop (1)
最新评论
-
huih:
很不错的文章
SpringMVC+Hibernate+Spring 简单的一个整合实例 -
calm01:
学习了.
Spring <bean>标签属性 Autowire自动装配(转载) -
lizhenlzlz:
我的也是拦截不了service层
SpringAOP拦截Controller,Service实现日志管理(自定义注解的方式)(转载) -
josh_123:
讲的不错,很详细,如果quartz定时任务类采用不继承任何类的 ...
Spring,jdk定时任务的几种实现以及任务线程是串行还是并行执行(转载) -
human_coder:
你知道eclipse调试怎么可以回调吗?有时候总是调快了,不能 ...
Debug---Eclipse断点调试基础
所谓布局就是指容器组件中子元素的分布、排列组合方式。Ext的所有容器组件都支持而局操作,每一个容器都会有一个对应的布局,布局负责管理容器组件中子元素的排列、组合及渲染方式等。
ExtJS的布局基类为Ext.layout.ContainerLayout,其它布局都是继承该类。ExtJS的容器组件包含一个layout及 layoutConfig配置属性,这两个属性用来指定容器使用的布局及布局的详细配置信息,如果没有指定容器组件的layout则默认会使用 ContainerLayout作为布局,该布局只是简单的把元素放到容器中,有的布局需要layoutConfig配置,有的则不需要 layoutConfig配置。看代码:
Ext.onReady(function(){ new Ext.Panel({ renderTo:"hello", width:400, height:200, layout:"column", items:[{columnWidth:.5, title:"面板1"}, {columnWidth:.5, title:"面板2"}] }); });
上面的代码我们创建了一个面板Panel,Panle是一个容器组件,我们使用layout指定该面板使用Column布局。该面板的子元素是两个面板, 这两个面板都包含了一个与列布局相关的配置参数属性columnWidth,他们的值都是0.5,也就是每一个面板占一半的宽度。执行上面的程序生成如下 图所示的结果:
Ext中的一些容器组件都已经指定所使用的布局,比如TabPanel使用card布局、FormPanel使用form布局,GridPanel中的表格使用column布局等,我们在使用这些组件的时候,不能给这些容器组件再指定另外的布局。
ExtJS2.0一共包含十种布局,常用的布局有border、column、fit、form、card、tabel等布局,下面我们分别对这几种布局作简单的介绍。
Border区域布局
Border布局由类Ext.layout.BorderLayout定义,布局名称为border。该布局把容器分成东南西北中五个区域,分别由 east,south, west,north, cente来表示,在往容器中添加子元素的时候,我们只需要指定这些子元素所在的位置,Border布局会自动把子元素放到布局指定的位置。看下面的代 码:
Ext.onReady(function(){ new Ext.Viewport({ layout:"border", items:[{region:"north", height:50, title:"顶部面板"}, {region:"south", height:50, title:"底部面板"}, {region:"center", title:"中央面板"}, {region:"west", width:100, title:"左边面板"}, {region:"east", width:100, title:"右边面板"} ] }); });
执行上面的代码将会在页面中输出包含上下左右中五个区域的面板,如下图所示:
Column列布局由Ext.layout.ColumnLayout类定义,名称为column。列布局把整个容器组件看成一列,然后往里面放入子元素 的时候,可以通过在子元素中指定使用columnWidth或width来指定子元素所占的列宽度。columnWidth表示使用百分比的形式指定列宽 度,而width则是使用绝对象素的方式指定列宽度,在实际应用中可以混合使用两种方式。看下面的代码:
Ext.onReady(function(){ new Ext.Panel({ renderTo:"hello", title:"容器组件", layout:"column", width:500, height:100, items:[{title:"列1",width:100}, {title:"列2",width:200}, {title:"列3",width:100}, {title:"列4"} ] } ); });
上面的代码在容器组件中放入了四个元素,在容器组件中形成4列,列的宽度分别为100,200,100及剩余宽度,执行结果如下图所示。
也可使用columnWidth来定义子元素所占的列宽度,看下面的代码:
Ext.onReady(function(){ new Ext.Panel({ renderTo:"hello", title:"容器组件", layout:"column", width:500, height:100, items:[{title:"列1",columnWidth:.2}, {title:"列2",columnWidth:.3}, {title:"列3",columnWidth:.3}, {title:"列4",columnWidth:.2} ] } ); });
注意columnWidth的总和应该为1,执行代码将生成如下图所示的内容:
在实际应用中还可以混合使用,看下面的代码:
Ext.onReady(function(){ new Ext.Panel({ renderTo:"hello", title:"容器组件", layout:"column", width:500, height:100, items:[{title:"列1",width:200}, {title:"列2",columnWidth:.3}, {title:"列3",columnWidth:.3}, {title:"列4",columnWidth:.4} ] } ); });
执行上面的代码将会生成如下图所示的结果:
Fit布局
Column列布局由Ext.layout.ColumnLayout类定义,名称为column。列布局把整个容器组件看成一列,然后往里面放入子元素 的时候,可以通过在子元素中指定使用columnWidth或width来指定子元素所占的列宽度。columnWidth表示使用百分比的形式指定列宽 度,而width则是使用绝对象素的方式指定列宽度,在实际应用中可以混合使用两种方式。看下面的代码:
Ext.onReady(function(){ new Ext.Panel({ renderTo:"hello", title:"容器组件", layout:"column", width:500, height:100, items:[{title:"列1",width:100}, {title:"列2",width:200}, {title:"列3",width:100}, {title:"列4"} ] } ); });
上面的代码在容器组件中放入了四个元素,在容器组件中形成4列,列的宽度分别为100,200,100及剩余宽度,执行结果如下图所示。
再看使用Fit布局后的代码,如下:
Ext.onReady(function(){ new Ext.Panel({ renderTo:"hello", title:"容器组件", layout:"fit", width:500, height:100, items:[{title:"子元素",html:"这是子元素中的内容"} ] } ); });
上面的代码指定父容器使用Fit布局,因此子将自动填满整个父容器。输出的图形如下:
如果容器组件中有多个子元素,则只会显示一个元素,如下面的代码:
Ext.onReady(function(){ new Ext.Panel({ renderTo:"hello", title:"容器组件", layout:"fit", width:500, height:100, items:[{title:"子元素1",html:"这是子元素1中的内容"}, {title:"子元素2",html:"这是子元素2中的内容"} ] } ); });
输出的结果如下:
如果不使用布局Fit,代码如下:
Ext.onReady(function(){ new Ext.Panel({ renderTo:"hello", title:"容器组件", width:500, height:120, items:[{title:"子元素1",html:"这是子元素1中的内容"}, {title:"子元素2",html:"这是子元素2中的内容"} ] } ); });
输出的结果如下图所示:
Form布局
Form布局由类Ext.layout.FormLayout定义,名称为form,是一种专门用于管理表单中输入字段的布局,这种布局主要用于在程序中创建表单字段或表单元素等使用。看下面的代码:
Ext.onReady(function(){ new Ext.Panel({ renderTo:"hello", title:"容器组件", width:300, layout:"form", hideLabels:false, labelAlign:"right", height:120, defaultType: 'textfield', items:[ {fieldLabel:"请输入姓名",name:"name"}, {fieldLabel:"请输入地址",name:"address"}, {fieldLabel:"请输入电话",name:"tel"} ] } ); });
上面的代码创建了一个面板,面板使用Form布局,面板中包含三个子元素,这些子元素都是文本框字段,在父容器中还通过hideLabels、labelAlign等配置属性来定义了是否隐藏标签、标签对齐方式等。上面代码的输出结果如下图所示:
可以在容器组件中把hideLabels设置为true,这样将不会显示容器中字段的标签了,如下图所示:
在实际应用中,Ext.form.FormPanel这个类默认布局使用的是Form布局,而且FormPanel还会创建与
标签相关的组件,因此一般情况下我们直接使用FormPanel即可。上面的例子可改写成如下的形式:
Ext.onReady(function(){ new Ext.form.FormPanel({ renderTo:"hello", title:"容器组件", width:300, labelAlign:"right", height:120, defaultType: 'textfield', items:[ {fieldLabel:"请输入姓名",name:"name"}, {fieldLabel:"请输入地址",name:"address"}, {fieldLabel:"请输入电话",name:"tel"} ] } ); });
程序结果与前面使用Ext.Panel并指定form布局的一样,如下图所示:
Accordion布局
Accordion布局由类Ext.layout.Accordion定义,名称为accordion,表示可折叠的布局,也就是说使用该布局的容器组件中的子元素是可折叠的形式。来看下面的代码:
Ext.onReady(function(){ new Ext.Panel({ renderTo:"hello", title:"容器组件", width:500, height:200, layout:"accordion", layoutConfig: { animate: true }, items:[{title:"子元素1",html:"这是子元素1中的内容"}, {title:"子元素2",html:"这是子元素2中的内容"}, {title:"子元素3",html:"这是子元素3中的内容"} ] } ); });
上面的代码定义了一个容器组件,指定使用Accordion布局,该容器组件中包含三个子元素,在layoutConfig中指定布局配置参数animate为true,表示在执行展开折叠时是否应用动画效果。执行结果将生成如下图所示的界面:
点击每一个子元素的头部名称或右边的按钮,则会展开该面板,并收缩其它已经展开的面板,如下图:
Card布局
Card布局由Ext.layout.CardLayout类定义,名称为card,该布局将会在容器组件中某一时刻使得只显示一个子元素。可以满足安装向导、Tab选项板等应用中面板显示的需求。看下面的代码:
Ext.onReady(function(){ var panel=new Ext.Panel({ renderTo:"hello", title:"容器组件", width:500, height:200, layout:"card", activeItem: 0, layoutConfig: { animate: true }, items:[{title:"子元素1",html:"这是子元素1中的内容"}, {title:"子元素2",html:"这是子元素2中的内容"}, {title:"子元素3",html:"这是子元素3中的内容"} ], buttons:[{text:"切换",handler:changeTab}] } ); var i=1; function changeTab() { panel.getLayout().setActiveItem(i++); if(i>2)i=0; } });
上面的代码创建了一个容器组件面板,面板中包含三个子面板元素,父容器包含一个“切换”按钮,点击该按钮将会执行changeTab函数,该函数实现把父容器中的活动面板在三个子元素之间进行切换。程序的执行结果如下所示:
点击一下“切换”按钮,结果如下图所示:
table布局及其它布局
Table布局由类Ext.layout.TableLayout定义,名称为table,该布局负责把容器中的子元素按照类似普通html标签
Ext.onReady(function(){ var panel=new Ext.Panel({ renderTo:"hello", title:"容器组件", width:500, height:200, layout:"table", layoutConfig: { columns: 3 }, items:[{title:"子元素1",html:"这是子元素1中的内容",rowspan:2,height:100}, {title:"子元素2",html:"这是子元素2中的内容",colspan:2}, {title:"子元素3",html:"这是子元素3中的内容"}, {title:"子元素4",html:"这是子元素4中的内容"} ] } ); });
上面的代码创建了一个父容器组件,指定使用Table布局,layoutConfig使用columns指定父容器分成3列,子元素中使用rowspan或colspan来指定子元素所横跨的单元格数。程序的运行效果如下图所示:
除了前面介绍的几种布局以外,Ext2.0中还包含其它的Ext.layout.AbsoluteLayout、 Ext.layout.AnchorLayout等布局类,这些布局主要作为其它布局的基类使用,一般情况下我们不会在应用中直接使用。另外,我们也可以 继承10种布局类的一种,来实现自定义的布局。
发表评论
-
EXT弹出窗口(转载)
2015-02-26 16:56 3170Ext.MessageBox.alert() Ext.Me ... -
Extjs教程_第六章_Editor_Grids(可编辑表格) (转载)
2015-02-15 16:04 6174在之前的一章中我 ... -
extJs 2.1学习笔记(Ext.Updater篇二) (转载)
2015-02-15 15:13 1298原文地址:http://blog.csdn.net/huo ... -
三大主流浏览器Web开发工具(转载)
2015-02-03 14:55 2752一个快速加载网页在很大程度上节约用户的浏览页面时间成本,作 ... -
ext+struts2排除List泛型中不想封装的属性(转载)
2015-02-02 18:10 1389struts2封装json,排除不想封装的字段配置,减少网 ... -
Ext Store Filter的实现和问题(转)
2014-01-26 14:33 6601Store包含两个数据缓存 - snapshot和data ... -
ExtJs之Ext.data.Store详解(转载)
2014-01-26 10:31 61846Ext.data.Store是EXT中用来进行数据交换和数据 ... -
Ext Grid表格导出excel
2013-08-22 16:10 4568两种方法,这是一种 ... -
ext中屏蔽backsapce删除时退出的代码
2012-07-31 11:37 1583<script type="text/java ... -
Ext 布局的一些配置属性
2012-07-10 16:48 1522布局配置中,layout和itmes是常用的,通过layout ... -
Ext CardLayout,AnchorLayout,AbsoulteLayout,FormLayout,ColumnLayout,TableLayout
2012-07-10 16:29 18841,CardLayout可以看做一叠卡片,是实现操作向导的典型 ... -
Ext AccordionLayout 布局
2012-07-10 15:58 1496Accordion布局类似于QQ中的伸缩菜单,通过点击可以折叠 ... -
Ext BorderLayout 布局
2012-07-10 11:59 2026BorderLayout布局比fit布局 ... -
Ext FitLayout 布局
2012-07-10 11:37 1204fit布局将使得组件自适应,子面板自动填充整个组件所占范围,不 ... -
Ext.query()和Ext.get()的区别,Ext.query()类似于jquery的DOM选择器
2012-07-03 17:02 2656Ext.get() 和 Ext.query() 取 ... -
Ext组件ComboBox 中getValue()和getRawValue()的区别
2012-06-29 10:04 6771当把Ext.form.ComboBox 的editable 设 ... -
ExtJs页面布局详解
2012-06-20 16:29 6436EXT标准布局类 面板相当于一张干净的白纸,如果直接在上 ... -
Ext 多选下拉 MultiComBox
2012-06-20 15:05 15860下面介绍MultiComboBox的使用方式,大家先看看下面的 ... -
Extjs xtype 一览表
2012-02-09 16:10 23986ExtJs xtype一览 基本组件: ... -
Ext中的get、getDom、getCmp、getBody、getDoc的区别 (转)
2012-02-02 16:28 1761Ext 中包含了几个以 get 开头的方法,这些方法 ...
相关推荐
ExtJs常用布局--layout详解实例代码: ExtJs常见的布局方式有:border、form、absolute、column...另外,不常见的布局有:tab、vbox、hbox 具体使用方法可见该文件的案例代码。 该文件含ext3.2.0压缩版,可直接运行哦!
至于工具,ExtJS 提供了丰富的API文档和社区资源,如iteye上的博客,可以帮助开发者解决问题和学习新的技巧。在实际开发中,可以结合IDE的代码提示和调试工具,以及在线示例和教程,快速掌握accordion布局的用法。 ...
深入浅出EXTJS241-320深入浅出EXTJS241-320深入浅出EXTJS241-320深入浅出EXTJS241-320深入浅出EXTJS241-320深入浅出EXTJS241-320深入浅出EXTJS241-320深入浅出EXTJS241-320深入浅出EXTJS241-320深入浅出EXTJS241-320...
一个extjs的OA项目 extjs-OA extjs-oaextjs-OA extjs-oa
ext基本的控件例子ext基本的控件例子ext基本的控件例子ext基本的控件例子
### Extjs4 学习指南知识点汇总 #### 1. Extjs初步 ##### 1.1 获取Extjs - **获取途径**:访问官方网站 http://extjs.org.cn/ 下载所需的 Extjs 发布包。 ##### 1.2 搭建学习环境 - **前提条件**:确保计算机上...
extjs-basex.js extjs-basex.js extjs-basex.js
ExtJS 4 Slate 主题是基于 Sencha ExtJS 4.0.7 框架的一个视觉风格,它提供了一种现代、扁平化的设计,增强了用户界面的吸引力和用户体验。Slate 主题是对默认主题的扩展,旨在为开发者提供一个更加专业且引人入胜的...
3. **布局管理**:解释ExtJS的布局系统,如Fit布局、Form布局、Table布局等,以及如何为容器设置和调整布局。 4. **数据绑定**:阐述ExtJS的数据模型(Store)和数据显示组件(Grid、Tree)之间的数据绑定机制,包括...
总的来说,这个"ExtJS--Windows.rar"包是一个学习和实践使用ExtJS构建Windows风格前端应用的好资源,涵盖了从组件使用、布局设计到数据交互等多个方面。对于希望提升前端技能,尤其是想要将Web应用设计得更具桌面...
extjs-620-docs官方文档extjs-620-docs官方文档extjs-620-docs官方文档
通过这个例子,开发者不仅可以学习到ExtJS 4的基础知识,还能深入理解如何在实际项目中整合服务器端技术,如SSI,以提高应用程序的性能和用户体验。同时,这个例子也为构建企业级的后台管理系统提供了一个参考模板。
在"ExtJS----HelloWorld程序源码"中,我们将会看到如何使用ExtJS来创建一个简单的“你好,世界!”应用。以下是对这个示例中涉及的主要知识点的详细解释: 1. **引入ExtJS库**:首先,你需要在HTML文件中引入ExtJS...
extjs4.2-2
extJs-5.0.1-gpl附带sencha cmd安装程序、ruby编译包(分为32位和64位)和教程,一共四部分
7. **图表组件**:EXTJS 3.x版本中也有图表组件,用于数据可视化。 8. **表单处理**:EXTJS的表单组件强大,支持多种表单元素,同时支持验证和远程提交。 9. **拖放功能**:EXTJS支持拖放操作,使用户可以自由组织...
深入浅出EXTJS241-320深入浅出EXTJS241-320深入浅出EXTJS241-320深入浅出EXTJS241-320
在这个例子中,“imageBox.css”可能包含了图片浏览器界面的所有样式规则,如组件颜色、边框、尺寸、布局和动画效果等。开发者可能通过这个文件来定制图片浏览器的视觉样式,使其符合项目的需求或者用户的喜好。 一...
它提供了丰富的组件库、数据绑定机制、MVC架构以及强大的布局管理。社区版是开源的,允许开发者免费使用和定制,适合开发复杂的企业级应用。 在"extjs_4.1.0_community_extjs4-mvc-complex-dashboard.zip"这个...
【Extjs--OA 自动办公系统】是一款基于ASP.NET技术和EXTJS前端框架开发的办公自动化系统,采用典型的三层架构设计,旨在提供高效、便捷的办公流程管理。此系统的实现涉及了多个关键知识点,下面将详细阐述这些技术...