1、首先说一下Accordion布局:就是俗称的手风琴布局,每一个item都是一个panel,看截图:
2、需求:如上解图中,我们点击next按钮就展开下一个panel。如是首先我们需要获取到当前展开的时哪个panel,才能展开下一个panel。
在观察中发现,当panel被展开时,它的 collapsed 属性为 false ,故需求就可实现了。
看代码:
Ext.onReady(function(){
Ext.create('Ext.panel.Panel', {
// title: 'Accordion Layout',
width: 300,
height: 350,
defaults: {
bodyStyle: 'padding:15px'
},
layout:{
type:'form'
},
items: [{
xtype:'label',
html:'Hello World'
},{
xtype:'container',
layout:{
type: 'accordion',
titleCollapse: true,
animate: true,
collapseFirst :true,
reserveScrollbar : true,
fill : true
},
defaults:{
itemCls:true,
style:'margin-bottom:5px;'
},
padding:'15 0 10 15',
width:300,
height:300,
id:'democon',
items:[{
title: 'Panel 1',
id:'1',
autoScroll :true,
layout:{
type: 'form'
},
listeners :{
},
items:[{
xtype:'container',
items:[{
xtype:'checkbox',
boxLabel :'Helo ,what can i help you ?'
},{
xtype:'textfield',
fieldLabel:'Hello My Text Label?',
labelWidth:150,
labelSeparator :''
},{
xtype:'textfield',
fieldLabel:'Hello My Text Label?',
labelWidth:150,
labelSeparator :''
},{
xtype:'textfield',
fieldLabel:'Hello My Text Label?',
labelWidth:150,
labelSeparator :''
},{
xtype:'checkbox',
boxLabel :' what can i do for you ?'
},{
xtype:'checkbox',
boxLabel :'Helo ,what can i help you ?'
}]
}]
},{
id:'2',
title: 'Panel 2',
html: 'Panel content!'
},{
id:'3',
title: 'Panel 3',
html: 'Panel content!'
}]
}],
buttons:[{
text:'',
iconCls:'next',
handler:function(){
var items = Ext.getCmp('democon').items;
var items0 = items.items[0];
for (var i = 0; i <items.length; i++) {
if(!items.items[i].collapsed){
if(i==(items.length-1)){
items0.expand();
break;
}else{
items.items[i+1].expand();
break;
}
}
};
}
}],
renderTo: Ext.getBody()
});
});