我在我的网络应用程序中使用 extjs4.1 和 geoext2。
我想通过 ajax 将 mapPanel 加载到 tabPanel 并填充 tabPanel 的高度和宽度。
如果我设置 mapPanel 的高度和宽度,我可以在 tabPanel 中看到它,但它不能填充 tabPanel,因为我设置了它的高度和宽度。以下代码:
mapPanel = Ext.create("GeoExt.panel.Map", {
renderTo: "mappanel",
height: 575,
width: 1124,
map:map,
zoom: 11,
tbar : toolbar
});
var tabs = Ext.create('Ext.tab.Panel', {
region: 'center', // a center region is ALWAYS required for border layout
deferredRender: false,
activeTab: 0, // first tab initially active
items: [{
title: 'History',
autoScroll: true
}, {
title: 'Center Panel',
autoScroll: true
}]
});
当用户通过以下代码单击具有图标的网格列时,我将 MapPanel 插入到 tabPanel。
var grid = Ext.create('Ext.grid.Panel', {
store: store,
columnLines: true,
columns: [
{
menuDisabled: true,
sortable: false,
xtype: 'actioncolumn',
width: 20,
items: [{
icon : '<?php echo Yii::app()->baseUrl.'/images/icons/show.png';?>',
tooltip: 'Show Map',
handler: function(grid, rowIndex, colIndex) {
var rec = store.getAt(rowIndex);
var jsonData = Ext.encode(store.proxy.reader.jsonData);
tabs.remove(tabs.getComponent(2));
tabs.insert(2,{
title:'Map',
layout: 'fit',
loader: {
scripts: true,
autoLoad :true,
params:{
history:jsonData,
index:rowIndex
},
failure : function(){
alert('failed');
},
url: '<?php echo Yii::app()->createUrl('MapWidget/HistoryMap');?>'
}
});
tabs.setActiveTab(2);
tabs.doLayout();
}
}]
},
...
但是当我在 mapPanel 选项中清理高度和宽度时,我在 tabPanel 中看不到它!
如何将 mapPanel 加载到 tabPanel 以填充其内容?