`

Extjs中layout的用法总结

阅读更多
好久没看过EXT了,最近项目中需要用到就重新复习了下,对于一些知识也都模糊不清,现对Extjs中的layout布局进行总结下:
layout中有absolute,anchor,border,accordion,card,form,table,column,fit这几种,现一一举例:
1.absolute根据字面意思就知道,是根据具体坐标进行定位的,固不写相应的代码了,其他的如下
2.anchor:其值可以使百分比和数值,数值一般为负数,其代表的意思是如果宽度和长度中有一个设定值了,则anchor代表的是未设置的那个,如果两者都没有设定具体值,则如果需要使用anchor则需要anchro:'ww,hh'
Ext.onReady(function() {  
       Ext.create('Ext.Window',{
		title:'Anchor layout',
		width:400,
		height:400,
		layout:'anchor',
		plain: true,
		items:[
			Ext.create('Ext.panel.Panel',{
				title:'panel1',
				height:100,
				anchor:'-50',
				html:'高度等于100,宽度= 容器宽度-50'
			}),
			Ext.create('Ext.panel.Panel',{
				title:'panel2',
				height:100,
				anchor:'50%',
				html:'高度等于100,宽度=容器的宽度*50%'
			}),
			Ext.create('Ext.panel.Panel',{
				title:'panel3',
				anchor:'-10,-200',
				html:'高度等于容器高度-10,宽度等于容器宽度-200'
			})
		]
		
	}).show(); 
    }); 


3.border:将容器分为五个区域:east,south,west,north,center
Ext.onReady(function(){
         var tab = Ext.create('Ext.tab.Panel',{
		region:'center',//border布局,将页面分成东,南,西,北,中五部分,这里表示TabPanel放在中间  
		margins:'3,3,3,0',
		activeTab:0,
		defaults:{
			autoScroll:true
		},
		items:[{
			title:'tab1',
			html:'第一个tab内容'
		},{
			title:'tab2',
			html:'第二个tab内容'
		},{
			title:'tab3',
			html:'第三个tab内容'
		}]
		
	})
	var nav = Ext.create('Ext.panel.Panel',{
		title:'navigation',
		region:'west',
		split:true,
		width:200,
		collapsible:true,//允许伸缩
		margins:'3,0,3,3',
		cmargins:'3,3,3,'
	});
	Ext.create('Ext.Window',{
		title:'Layout Window',
		width:600,
		height:350,
		closable:true,
		border:false,
		plain:true,
		layout:'border',
		closeAction:'hide',
		items:[nav,tab]
	}).show();
)};

4.accordion:这个风格是手风琴式的,效果是如果 有多个item,则点击其中一个,则展开,其他的则收缩。
Ext.OnReady(function(){  
     Ext.create('Ext.panel.Panel',{
		title:'容器组件',
		layout:'accordion',
		width:600,
		height:200,
		layoutConfig:{animate:false},
		items:[{
		   title:'元素1',html:''
		},{
		   title:'元素2',html:''
		},{
		   title:'元素3',html:''
		},{
		   title:'元素4',html:''
		}]
		
	}); 
}); 


5.card:像安装向导一样,一张一张显示

Ext.onReady(function(){
	var navigate = function(panel,direction){
		var layout = panel.getLayout();
		layout[direction]();
		Ext.getCmp('move-prev').setDisabled(!layout.getPrev());
		Ext.getCmp('move-next').setDisabled(!layout.getNext());
	};
	Ext.create('Ext.panel.Panel',{
				title:'Example Wizard',
				height:500,
				width:400,
				layout: 'card',
				activeItem:0,
				bodyStyle:'padding:15px',
				animCollapse:true,
				renderTo:Ext.getBody(),
				defaults:{
       				 // applied to each contained panel
        			border: false
   				},
				bbar:[{
					id:'move-prev',
					text:'back',
					handler:function(btn){
						navigate(btn.up("panel"),"prev");
					},
					disabled:true
				},'->',{
					id:'move-next',
					text:"next",
					handler:function(btn){
						navigate(btn.up("panel"),"next");
					}
				}],
				items:[{
					id:'card-0',
					html:'<h1>Welcome to the Wizard!</h1>'
				},{
					id:'card-1',
					html:'<p>step 2 of 3 </p>'
				},{
					id:'card-2',
					html:'<h1>Congratulations!</h1><p>Step 3 of  3-complete</p>'
				}]
			});
});

6.form:是一种专门用于管理表单中输入字段的布局
Ext.onReady(function() {  
        var win = Ext.create('Ext.Window',{  
            title: "form Layout",  
            height: 150,  
            width: 230,  
            plain: true,  
            bodyStyle: 'padding:15px',  
            items:   
            {  
                xtype: "form",  
                labelWidth: 30,  
                defaultType: "textfield",  
                frame:true,  
                items:   
                [  
                    {  
                        fieldLabel:"姓名",  
                        name:"username",  
                        allowBlank:false  
                    },  
                    {  
                        fieldLabel:"呢称",  
                        name:"nickname"  
                    },  
                    {  
                        fieldLabel: "生日",  
                        xtype:'datefield',  
                        name: "birthday",  
                        width:127  
                    }  
                ]  
            }  
        });  
        win.show();  
    });  


7.table:按照普通表格的方法布局子元素,用layoutConfig:{columns:3},//将父容器分成3列
Ext.onReady(function(){  
      Ext.create('Ext.panel.Panel',  
      {  
       renderTo:Ext.getBody(),  
       title:'容器组件',  
       layout:'table',         
       width:500,  
       height:200,  
       layoutConfig:{columns:3},//将父容器分成3列  
       items:[  
        {title:'元素1',html:'ssssssssss',rowspan:2,height:100},  
        {title:'元素2',html:'dfffsddsdfsdf',colspan:2},  
        {title:'元素3',html:'sdfsdfsdf'},  
        {title:'元素4',html:''}  
       ]  
      }  
     );  
}); 

8.column:把整个容器看成一列,然后向容器放入子元素时
Ext.onReady(function() {  
        var win = Ext.create('Ext.Window',{  
            title: "Column Layout",  
            height: 300,  
            width: 400,  
            plain: true,  
            layout: 'column',  
            items: [{  
                title:"width=50%",  
                columnWidth:0.5,  
                html:"width=(容器宽度-容器内其它组件固定宽度)*50%",  
                height:200  
            },  
            {  
                title:"width=250px",  
                width: 200,  
                height:100,  
                html:"固定宽度为250px"  
            }              
            ]  
        });  
        win.show();  
    });  


9.fit:填充整个容器(如果多个子元素则只有一个元素充满整个容器)
Ext.OnReady(function(){  
   Ext.create(Ext.create(Ext.panel.Panel',  
      {  
       renderTo:'paneldiv',  
       title:'容器组件',  
       layout:'fit',  
       width:500,  
       height:100,  
       items:[  
        {title:'子元素1'},  
        {title:'子元素2'},  
        {title:'子元素3'},  
        {title:'子元素4'},  
        {title:'子元素5'}  
       ]  
      }  
     );  
}); 
分享到:
评论
1 楼 mj 2015-03-10  

相关推荐

    ExtJs常用布局--layout详解实例代码

    ExtJs常用布局--layout详解实例代码: ExtJs常见的布局方式有:border、form、absolute、column、accordion、table、fit、card、anchor ...具体使用方法可见该文件的案例代码。 该文件含ext3.2.0压缩版,可直接运行哦!

    ExtJS中文手册.pdf

    ### ExtJS中文手册知识点概览 #### 1. EXT简介 - **背景介绍**:ExtJS是一款...通过以上内容的详细介绍,我们不仅能够了解到ExtJS的基本用法,还能够深入掌握其高级特性,从而更加高效地利用ExtJS进行Web应用的开发。

    extjs3.0中文API

    2. **布局管理**:布局管理器(Layout Manager)负责管理组件容器中的子组件的大小和位置。常见的布局有Fit布局、Border布局、Table布局和Form布局等。 3. **数据绑定**:ExtJS的数据绑定功能允许开发者将UI组件与...

    extjs中文api

    为了展示如何使用ExtJS处理表单提交,可以参考下面的例子: ```javascript { Form: "myform", url: 'person.jsp', params: { id: '01' }, method: 'post', timeout: 3000, success: function(response, ...

    ExtJs部署及使用方法

    ### ExtJs部署及使用方法详解 #### 一、ExtJs部署与配置 ##### 1.1 ExtJs库的安装 为了正确地安装ExtJs库,首先需要将ExtJs的源码包放置到项目的WebRoot目录下,即项目的根目录。在安装过程中,需要创建以下...

    extjs中的多选列表

    在EXTJS这个强大的JavaScript框架中,虽然原生并未直接提供多选列表(Multi Select List)组件,但开发者可以通过...在开发过程中,记得查阅EXTJS的官方文档,了解更多的配置选项和方法,以便更好地满足项目需求。

    Extjs3.0中文文档大全

    1. **快速入门**:这部分通常会介绍如何在项目中引入ExtJS库,创建基本的页面结构,以及如何使用其核心组件,如面板(Panel)、窗口(Window)和布局(Layout)。 2. **组件库**:ExtJS 3.0包含了大量的UI组件,如...

    extjs中Ext.Panel和TreePanel 组件动态加载本地页面数据

    总结来说,`Ext.Panel`和`TreePanel`在EXTJS中是两个关键的组件,它们支持动态加载本地数据,提高了用户体验。理解这两个组件的工作原理和如何利用`Store`、`Ajax`、`TreeStore`进行数据加载,是EXTJS开发中的重要...

    ExtJs 动态添加表单

    在ExtJS中,我们可以使用`Ext.container.Container`类来创建一个容器,然后设置布局为`form`,以便容纳表单字段。例如: ```javascript var formPanel = Ext.create('Ext.form.Panel', { layout: 'form', items...

    extjs.3.0中文API

    ExtJS是一个广泛使用的JavaScript库,特别适用于构建富客户端应用程序。3.0版本是该库的一个重要里程碑,提供了许多功能和改进。这篇文档将详细介绍ExtJS 3.0的中文API,帮助开发者更好地理解和使用这个框架。 一、...

    Extjs中文api

    在ExtJS 3.2版本中,该库提供了丰富的组件和布局管理,包括但不限于以下核心概念: 1. **组件(Components)**: ExtJS的核心是其组件模型,允许开发者创建复杂的UI元素,如表格、表单、树形视图、面板、窗口等。...

    ExtJS的MVC模式

    在ExtJS中,视图通常通过布局(layout)来组织这些组件,并通过绑定(binding)将模型的数据展示出来。当模型数据发生变化时,视图会自动更新,反之亦然。 3. **控制器(Controller)**:控制器作为模型和视图之间...

    Extjs4.0中文学习手册_入门详解.docx

    在ExtJS中,`Ext.onReady`和`Ext.application`是两个非常重要的方法。`Ext.onReady`在DOM加载完成后执行,确保所有元素都可供脚本引用。例如,你可以尝试在`Ext.onReady`回调中添加一个`alert`语句: ```javascript...

    ExtJs 的中文API文档版本3.3

    在ExtJs中,布局管理器(Layout Manager)负责处理组件容器内的空间分配和排列方式,例如:Fit布局、Table布局、Anchor布局、Form布局等。这使得开发者可以轻松地创建适应不同屏幕尺寸和数据量的界面。 3. **表格...

    Extjs4的demo

    在ExtJS中,`Ext.onReady`和`Ext.application`是两个非常重要的方法。`Ext.onReady`会在DOM完全加载后自动执行,确保所有元素都可被脚本引用。你可以尝试在`Ext.onReady`函数内添加代码,例如弹出一个对话框,以观察...

    Extjs4.0权威指南-中文

    本节通过一个简单的“Hello World”示例来介绍 Extjs4 的基本用法。 1. **创建 `helloworld.js` 文件:** ```javascript Ext.application({ name: 'HelloExt', launch: function () { Ext.create('Ext....

    ExtJS 3.2的中文参考手册

    ### ExtJS 3.2 的中文参考手册知识点详解 #### 1. **EXT简介** - **定位**: 作为一款强大的...以上内容是对ExtJS 3.2中文参考手册的关键知识点进行了详细的解析和总结,希望能对学习ExtJS的开发者有所帮助。

    Extjs4.0学习指南(中文)

    Extjs 提供了两种常用的方法来启动应用程序:`Ext.onReady` 和 `Ext.application`。 - **Ext.onReady**:此方法确保 DOM 加载完成后再执行指定函数。例如: ```javascript Ext.onReady(function() { alert('...

    extjs小例子

    标题"EXTJS小例子"可能是指一个包含EXTJS基本使用示例的项目,帮助初学者理解EXTJS的工作原理和基本用法。这个项目可能包含了一些简单的EXTJS代码片段,演示了如何创建和配置EXTJS组件,以及如何组织和布局页面。 ...

Global site tag (gtag.js) - Google Analytics