EXTJS4自学手册——EXT容器布局(Fit,Card,Border)

一、Fit布局

说明:容器内的组件占满整个容器

例子:

<script type="text/javascript">
<!--在页面加载完成后调用JS代码-->
Ext.onReady(
function(){
//定义panel组件
var panel1 = Ext.create('Ext.panel.Panel',{

title:
'panel1',
html:
'columnWidth:.28'
});

//将3个panel放在一个弹出层中
var w = Ext.create('Ext.window.Window',{
width:
200,
height:
200,
title:
'fit布局',
layout:
'fit',
items:[panel1]
});
w.show();
});
</script>

执行结果:

 

二、Card布局

说明:多个组件重叠排列,一次只有一个组件显示,占满整个容器。

例子:

<script type="text/javascript">
<!--在页面加载完成后调用JS代码-->
Ext.onReady(
function(){
//切换panel方法
var changePanel = function(button){
//获取当前展示的panel
var activeItem = w.layout.activeItem;
//当前展示的panel是第几个
var active = w.items.indexOf(activeItem);
//如果按下的是上一张按钮
if(button.id=="preButton"){
active
-=1;//索引减一
Ext.getCmp('nextButton').setDisabled(false);//启用下一张按钮
}else{
active
+=1;//索引加一
Ext.getCmp('preButton').setDisabled(false);//启用上一张按钮
}
w.layout.setActiveItem(active);
//将索引为active的panel展示出来,其他的panel隐藏

if(active==0){
Ext.getCmp(
'preButton').setDisabled(true);//如果是第一张,第一张按钮不可用
}
if(active==2){
Ext.getCmp(
'nextButton').setDisabled(true);//如果是最后一张,下一张按钮不可用
}

}

//定义panel组件
var panel1 = Ext.create('Ext.panel.Panel',{

title:
'panel1',
html:
'panel1'
});
var panel2 = Ext.create('Ext.panel.Panel',{

title:
'panel2',
html:
'panel2'
});
var panel3 = Ext.create('Ext.panel.Panel',{

title:
'panel3',
html:
'panel3'
});
//将3个panel放在一个弹出层中
var w = Ext.create('Ext.window.Window',{
width:
200,
height:
200,
title:
'card布局',
layout:
'card',
//要包含的组件
items:[panel1,panel2,panel3],
//定义按钮
bbar:[{
id:
'preButton',
text:
'上一张',
//单击按钮时触发的方法
handler:changePanel,
disabled:
true
},
'->',{
id:
'nextButton',
text:
'下一张',
//单击按钮时触发的方法
handler:changePanel
}]
});
w.show();
});
</script>

执行结果:

 

三、Border布局

说明:将容器分为上下左右中5个区域,其中中间区域的组件必须有,其他区域可有可无

例子:

<script type="text/javascript">
<!--在页面加载完成后调用JS代码-->
Ext.onReady(
function(){


//定义panel组件
var panel1 = Ext.create('Ext.panel.Panel',{
//方位:北
region:'north',
title:
'panel1',
height:
30,
html:
'north'
});
var panel2 = Ext.create('Ext.panel.Panel',{
//方位:中
region:'center',
title:
'panel2',
html:
'center'
});
var panel3 = Ext.create('Ext.panel.Panel',{
//方位:南
region:'south',
height:
40,
title:
'panel3',
html:
'south'
});
var panel4 = Ext.create('Ext.panel.Panel',{
//方位:东
region:'east',
width:
50,
title:
'panel3',
html:
'east'
});
var panel5 = Ext.create('Ext.panel.Panel',{
//方位:西
region:'west',
width:
100,
title:
'panel3',
html:
'west'
});

var w = Ext.create('Ext.window.Window',{
width:
400,
height:
400,
title:
'border布局',
layout:
'border',
//要包含的组件
items:[panel1,panel2,panel3,panel4,panel5]
});
w.show();
});
</script>

执行结果:







posted @ 2012-04-06 15:56  争世不悔  阅读(2815)  评论(1编辑  收藏  举报