extjs的容器组件都可以设置它的显示风格,它的有效值有 absolute, accordion, anchor, border, card, column, fit, form and table. 一共9种。简单总结一下,帮助记忆。
• absolute 顾名思义,在容器内部,根据指定的坐标定位显示
• accordion 这个是最容易记的,手风琴效果
Java代码
1. Ext.OnReady(function(){
2. var panel=new Ext.Panel(//Ext.formPanel就是Panel中用了form布局
3. {
4. renderTo:'paneldiv',
5. title:'容器组件',
6. layout:'accordion',
7. width:500,
8. height:200,
9. layoutConfig:{animate:false},
10. items:[
11. {title:'元素1',html:''},
12. {title:'元素2',html:''},
13. {title:'元素3',html:''},
14. {title:'元素4',html:''}
15. ]
16. }
17. );
18. });
• anchor 这个效果具体还不知道有什么用,就是知道注意一下
1.容器内的组件要么指定宽度,要么在anchor中同时指定高/宽,
2.anchor值通常只能为负值(指非百分比值),正值没有意义,
3.anchor必须为字符串值
Java代码
1. Ext.onReady(function() {
2. var panel1 = new Ext.Panel({
3. title: "panel1",
4. height: 100,
5. anchor: '-50',
6. html: "高度等于100,宽度=容器宽度-50"
7. });
8.
9. var panel2 = new Ext.Panel({
10. title: "panel2",
11. height: 100,
12. anchor: '50%',
13. html: "高度等于100,宽度=容器宽度的50%"
14.
15. });
16.
17. var panel3 = new Ext.Panel({
18. title: "panel3",
19. anchor: '-10, -250',
20. html: "宽度=容器宽度-10,高度=容器宽度-250"
21.
22. });
23.
24. var win = new Ext.Window({
25. title: "Anchor Layout",
26. height: 400,
27. width: 400,
28. plain: true,
29. layout: 'anchor',
30. items: [panel1, panel2,panel3]
31. });
32. win.show();
33. });
• border 将容器分为五个区域:east,south,west,north,center
Java代码
1. Ext.onReady(function() {
2.
3. var button = Ext.get('show-btn');
4. var win;
5.
6. button.on('click', function() {
7.
8. //创建TabPanel
9. var tabs = new Ext.TabPanel({
10. region: 'center', //border布局,将页面分成东,南,西,北,中五部分,这里表示TabPanel放在中间
11. margins: '3 3 3 0',
12. activeTab: 0,
13. defaults: {
14. autoScroll: true
15. },
16. items: [{
17. title: 'Bogus Tab',
18. html: "第一个Tab的内容."
19. }, {
20. title: 'Another Tab',
21. html: "我是另一个Tab"
22. }, {
23. title: 'Closable Tab',
24. html: "这是一个可以关闭的Tab",
25. closable: true
26. }]
27. });
28.
29. //定义一个Panel
30. var nav = new Ext.Panel({
31. title: 'Navigation',
32. region: 'west', //放在西边,即左侧
33. split: true,
34. width: 200,
35. collapsible: true, //允许伸缩
36. margins: '3 0 3 3',
37. cmargins: '3 3 3 3'
38. });
39.
40. //如果窗口第一次被打开时才创建
41. if (!win) {
42. win = new Ext.Window({
43. title: 'Layout Window',
44. closable: true,
45. width: 600,
46. height: 350,
47. border : false,
48. plain: true,
49. layout: 'border',
50. closeAction:'hide',
51. items: [nav, tabs]//把上面创建的panel和TabPanel放在window中,并采用border方式布局
52. });
53. }
54. win.show(button);
55. });
56. });
• card 像安装向导一样,一张一张显示
Java代码
1. Ext.onReady(function() {
2.
3. var i = 0;
4.
5. var navHandler = function(direction) {
6. if (direction == -1) {
7. i--;
8. if (i < 0) { i = 0; }
9. }
10.
11. if (direction == 1) {
12. i++;
13. if (i > 2) { i = 2; return false; }
14. }
15.
16.
17. var btnNext = Ext.get("move-next").dom.document.getElementsByTagName("button")[1];
18. var btnBack = Ext.get("move-next").dom.document.getElementsByTagName("button")[0];
19.
20. if (i == 0) {
21. btnBack.disabled = true;
22. }
23. else {
24. btnBack.disabled = false;
25. }
26.
27. if (i == 2) {
28. btnNext.value = "完成";
29. btnNext.disabled = true;
30. }
31. else {
32. btnNext.value = "下一步";
33. btnNext.disabled = false;
34. }
35.
36. card.getLayout().setActiveItem(i);
37.
38. };
39.
40.
41. var card = new Ext.Panel({
42. width: 200,
43. height: 200,
44. title: '注册向导',
45. layout: 'card',
46. activeItem: 0, // make sure the active item is set on the container config!
47. bodyStyle: 'padding:15px',
48. defaults: {
49. border: false
50. },
51. bbar: [
52. {
53. id: 'move-prev',
54. text: '上一步',
55. handler: navHandler.createDelegate(this, [-1])
56. },
57. '->',
58. {
59. id: 'move-next',
60. text: '下一步',
61. handler: navHandler.createDelegate(this, [1])
62. }
63. ],
64.
65. items: [{
66. id: 'card-0',
67. html: '<h1>欢迎来到注册向导!</h1><p>Step 1 of 3</p>'
68. }, {
69. id: 'card-1',
70. html: '<h1>请填写注册资料!</h1><p>Step 2 of 3</p>'
71. }, {
72. id: 'card-2',
73. html: '<h1>注册成功!</h1><p>Step 3 of 3 - Complete</p>'
74. }],
75.
76. renderTo: "container"
77. });
78.
79.
80.
81. });
• column 把整个容器看成一列,然后向容器放入子元素时
Java代码
1. Ext.onReady(function() {
2. var win = new Ext.Window({
3. title: "Column Layout",
4. height: 300,
5. width: 400,
6. plain: true,
7. layout: 'column',
8. items: [{
9. title:"width=50%",
10. columnWidth:0.5,
11. html:"width=(容器宽度-容器内其它组件固定宽度)*50%",
12. height:200
13. },
14. {
15. title:"width=250px",
16. width: 200,
17. height:100,
18. html:"固定宽度为250px"
19. }
20. ]
21. });
22. win.show();
23. });
• fit 一个子元素将充满整个容器(如果多个子元素则只有一个元素充满整个容器)
Java代码
1. Ext.OnReady(function(){
2. var panel=new Ext.Panel(
3. {
4. renderTo:'paneldiv',
5. title:'容器组件',
6. layout:'fit',
7. width:500,
8. height:100,
9. items:[
10. {title:'子元素1'},
11. {title:'子元素2'},
12. {title:'子元素3'},
13. {title:'子元素4'},
14. {title:'子元素5'}
15. ]
16. }
17. );
18. });
• form 是一种专门用于管理表单中输入字段的布局
Java代码
1. Ext.onReady(function() {
2. var win = new Ext.Window({
3. title: "form Layout",
4. height: 150,
5. width: 230,
6. plain: true,
7. bodyStyle: 'padding:15px',
8. items:
9. {
10. xtype: "form",
11. labelWidth: 30,
12. defaultType: "textfield",
13. frame:true,
14. items:
15. [
16. {
17. fieldLabel:"姓名",
18. name:"username",
19. allowBlank:false
20. },
21. {
22. fieldLabel:"呢称",
23. name:"nickname"
24. },
25. {
26. fieldLabel: "生日",
27. xtype:'datefield',
28. name: "birthday",
29. width:127
30. }
31. ]
32. }
33. });
34. win.show();
35. });
• table 按照普通表格的方法布局子元素,用layoutConfig:{columns:3},//将父容器分成3列
Java代码
1. Ext.onReady(function(){
2. var panel=new Ext.Panel(
3. {
4. renderTo:'paneldiv',
5. title:'容器组件',
6. layout:'table',
7. width:500,
8. height:200,
9. layoutConfig:{columns:3},//将父容器分成3列
10. items:[
11. {title:'元素1',html:'ssssssssss',rowspan:2,height:100},
12. {title:'元素2',html:'dfffsddsdfsdf',colspan:2},
13. {title:'元素3',html:'sdfsdfsdf'},
14. {title:'元素4',html:''}
15. ]
16. }
17. );
18. });
.
分享到:
相关推荐
ExtJs常用布局--layout详解实例代码: ExtJs常见的布局方式有:border、form、absolute、column、accordion、table、fit、card、anchor 另外,不常见的布局有:tab、vbox、hbox 具体使用方法可见该文件的案例代码。 ...
2. **类系统**:EXT使用面向对象的编程方式,"ext-base.js"中包含了类的创建、继承和实例化等机制,使得开发者可以方便地创建自定义组件。 3. **事件系统**:EXT的事件模型是其交互性的重要组成部分,"ext-base.js...
EXT-GWT(GXT)是Sencha公司推出的一款基于Google Web Toolkit(GWT)的开源JavaScript库,用于构建富客户端的Web应用。本教程将详细介绍如何搭建EXT-GWT(GXT)的开发环境,并结合Google Maps API第三版进行集成...
- **布局管理**:EXT提供了多种布局管理方式,如Border Layout、Fit Layout等,便于灵活地组织页面元素。 - **示例应用**:通过具体示例演示如何应用不同类型的布局,实现页面设计目标。 #### 14. Grid - **数据...
**EXT基本表格(GridPanel)介绍**:EXT的表格组件,即`Ext.grid.GridPanel`,是一种功能强大的数据展示工具。它可以与服务器端进行数据交互,支持排序、筛选、分页等功能。开发者可以自定义列头、行样式,甚至实现...
在支持一次仅显示一个子组件的布局中,如`Ext.layout.Accordion`、`Ext.layout.CardLayout`和`Ext.layout.FitLayout`,这个属性特别有用。 2. **allowDomMove**: 默认值为`true`,表示在组件渲染过程中允许移动DOM...
根据给定的信息,本文将详细解释“Ext 添加功能form表单实例”的知识点,这主要针对Ext初学者。本文会从创建表单、字段定义、验证规则以及提交逻辑等方面进行深入探讨。 ### Ext 添加功能form表单实例 #### 表单...
1. **布局管理**:EXT JS提供多种布局方式,如表单布局(Form Layout)、流式布局(Fluid Layout)、绝对布局(Absolute Layout)、列布局(Column Layout)等,这些布局在创建复杂的网页布局时非常有用。...
EXT dojochina Ext类实例属性是一个关于EXT框架在JavaScript中的使用的主题,主要涉及EXT库中的类和实例属性。EXT是一个强大的JavaScript库,用于构建富客户端应用程序,它提供了丰富的组件和布局管理,使得Web应用...
在IT行业中,EXT4是一种广泛使用的文件系统,尤其在Linux操作系统中。它的全称是Fourth Extended File System,是EXT3的升级版,旨在提供更好的性能、稳定性和更大的存储容量。EXT4引入了许多新特性,例如预分配、...
EXT,全称Ext JS,是一种基于JavaScript的前端框架,最初是作为Yahoo! UI(YUI)库的一个扩展而诞生的,但后来发展成为一个独立的项目,不再依赖于YUI。EXT因其适合企业级开发,能够实现复杂的Layout布局,以及与...
Ext的formpanel table布局实例,有效解决了页面resize时列宽不跟随改变的问题,即列宽的自适应宽度
Ext4.2 MVC 实例 源码 grid tree layout。。。
9. **EXT.layout**:布局管理器是EXT.js中非常重要的一部分,它负责管理组件的排列和大小调整,确保组件在不同屏幕尺寸下都能正确显示。 10. **Ajax生命周期**:理解Ajax请求的生命周期至关重要,包括请求的初始化...
4. `examples` 文件夹:包含各种示例和Demo,这些实例演示了EXT库的不同组件和功能如何使用,是学习EXT的好材料。 5. `docs` 文件夹:可能包含EXT的API文档,让你可以查阅每个类、方法和属性的详细信息。 6. `src` ...
每个portlet可以有多个子项,例如`待办事宜列表`和`系统通知`,它们通过`title`指定标题,并使用`layout: 'fit'`来适应portlet的大小。`tools`属性允许添加工具栏图标,而`items`则指定了portlet内的具体内容,如`...
子菜单可以是另一个`Ext.menu.Menu`实例,或者是一个包含更多菜单项的数组。如果子菜单是一个数组,那么数组中的每个元素同样是一个菜单项的配置对象。 3. **添加事件监听器**: 为了让菜单项之间能够级联,你需要...