0

我在我的网络应用程序中使用 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 以填充其内容?

4

1 回答 1

1

从文档

如果 Component 要成为 Container 的子项,请不要使用此选项。Container 的布局管理器负责渲染和管理其子项。

以下是一些以正确方式远程加载组件的示例代码:http: //dev.sencha.com/deploy/ext-4.1.0-gpl/examples/component-loader/component-loader.html

于 2012-09-08T23:08:20.120 回答