如何将网格放在边框布局的中心区域以及extjs版本4.0.0中的窗体。我能够把表格而不是网格放在一起。
源代码: -
Ext.onReady(function() {
var viewport = Ext.create('Ext.container.Viewport', {
renderTo: Ext.getBody(),
layout: 'border',
items: [{
region: 'west',
width: 200,
collapsible: true,
collapsed: true,
html: 'West Region'
}, {
region: 'center'
}, {
region: 'east',
width: 200,
collapsible: true,
collapsed: true,
html: 'East Region'
}, {
region: 'south',
height: 50,
html: 'South Region'
}]
});
var form = Ext.create('Ext.form.Panel', {
renderTo: Ext.getBody(),
title: 'User Form',
height: 130,
align: 'center',
width: 280,
bodyPadding: 10,
defaultType: 'textfield',
items: [
{
fieldLabel: 'First Name',
name: 'firstName'
},
{
fieldLabel: 'Last Name',
name: 'lastName'
}
],
buttons: [{
text: 'Submit',
handler : function () { alert("successfully submitted");}
}]
});
viewport.layout.regions.center.add(form);
// using add()
form.show()
});
请帮我在extjs 4.0.0的边框布局中心区域下面放一个网格
答案 0 :(得分:1)
//THis is in app.js
launch : function() {
Ext.create('Ext.container.Viewport', {
layout : {
type : 'border'
},
defaults : {
split : false
},
items : [ {
region : 'north',
id : 'mainHeader'
}, {
region : 'south',
height : 20,
id : 'mainFooter'
}, {
id : 'mainContent',
collapsible : false,
region : 'center',
layout: 'fit'
}
//----This is Controller code ---
init: function() {
console.debug(' controller init(). ');
this.control({
'viewport > #mainContent': { //look inside a viewport component for component by id='mainContent'
render: this.onMainReady //attach 'onMainReady' function to the 'render' event of the above component
}
//--- this is onMainReady inside controller
//load grid into the main content
var main = Ext.getCmp('mainContent'); //it isnot best practice to use getCmp
main.add({
xtype:'mygrid',
id:'whateveriwant'
});
答案 1 :(得分:0)
您应该在中心面板的项目中包含表单和网格,并设置适当的布局。
答案 2 :(得分:0)
您无法将组件添加到borderlayout区域。如果您想要向视口中心区域添加多个组件,则必须使用包装器组件。
文档中的段落:http://docs.sencha.com/ext-js/4-0/#/api/Ext.layout.container.Border
BorderLayout的区域在渲染时固定,之后, 其子组件可能无法删除或添加。要添加/删除 BorderLayout中的组件,将它们包含在附加组件中 由BorderLayout直接管理的容器。如果是该地区 是可折叠的,BorderLayout直接使用Container 经理应该是一个小组。
答案 3 :(得分:0)
而不是添加一个表单 创建表单和网格并立即添加它们
试试这个:
var bothforms = Ext.create('Ext.form.Panel', {
renderTo: Ext.getBody(),
width: 600,
layout: 'column',//or whetever u want
items [{
title: 'User Form',
columnWidth: .5,
border: false,
height: 130,
align: 'center',
width: 280,
bodyPadding: 10,
defaultType: 'textfield',
items: [... ]
},{
title : 'User Grid',
columnWidth: .5,
border: false,
height: 130,
width: 300,
items: [... ]
}]
});
viewport.layout.regions.center.add(bothforms);
// using add()
bothforms.show()