1

我目前正在使用 EXTjs 的默认 Portal Demo.. http://docs.sencha.com/ext-js/4-2/extjs-build/examples/portal/portal.html

谁能告诉我我们是否可以制作一个具有 3 个选项卡的居中 TabPanel,并且每个选项卡内部都有一个 Portal。

所以在页面加载时,我们在选项卡 1 上。它本质上是一个门户,我可以在其中拖放东西。选项卡 2 相同。

在 ExtJs 提供的 portal.js 中,我们有用于创建portalpanel. 一切正常,但现在我必须有一个 Tabpanel 而不是门户面板,本质上是一个 tabpanel 中的门户面板。

显示的代码portalpanel是:

 Ext.define('Ext.app.Portal', {
    extend: 'Ext.container.Viewport',
    uses: ['Ext.app.PortalPanel', 'Ext.app.PortalColumn', 'Ext.app.GridPortlet', 'Ext.app.ChartPortlet'],
    initComponent: function(){
var content = '<div class="portlet-content">'+Ext.s.shortBogusMarkup+'</div>';
        Ext.apply(this, {
            id: 'app-viewport',
            layout: {
                type: 'border',
                padding: '0 5 5 5'
            },
            items: [{
                id: 'app-header',
                xtype: 'box',
                region: 'north',
                height: 40,
                html: '<div></div>'
            },{
                xtype: 'container',
                region: 'center',
                layout: 'border',
                items: [{
                    id: 'app-options',
                    title: 'All Widgets',
                    region: 'west',
                    animCollapse: true,
                    width: 200,
                    minWidth: 150,
                    maxWidth: 400,
                    split: true,
                    collapsible: true,
                    layout: 'accordion',
                    layoutConfig:{
                        animate: true
                    },
                    items: [{
                        html: '<div class="portlet-content">'+Ext.s.example+'</div>',
                        title:'Tables',
                        autoScroll: true,
                        border: false,
                        iconCls: 'nav'
                    },
               {
                    id: 'app-portal',
                    xtype: 'portalpanel',
                    region: 'center',
                    items: [{
                        id: 'col-1',
                        items: [{
                            id: 'portlet-1',
                            title: 'Grid Portlet',
                            tools: this.getTools(),
                            items: Ext.create('Ext.app.GridPortlet'),
                            listeners: {
                                'close': Ext.bind(this.onPortletClose, this)
                            }
                        },{
                            id: 'portlet-2',
                            title: 'Portlet 2',
                            tools: this.getTools(),
                            html: content,
                            listeners: {
                                'close': Ext.bind(this.onPortletClose, this)
                            }
                        }]
                    },{
                        id: 'col-2',
                        items: [{
                            id: 'portlet-3',
                            title: 'Portlet 3',
                            tools: this.getTools(),
                            html: '<div class="portlet-content">'+Ext.smartdashboard.bogusMarkup+'</div>',
                            listeners: {
                                'close': Ext.bind(this.onPortletClose, this)
                            }
                        }]
                    },{
                        id: 'col-3',
                        items: [{
                            id: 'portlet-4',
                            title: 'Stock Portlet',
                            tools: this.getTools(),
                            items: Ext.create('Ext.app.ChartPortlet'),
                            listeners: {
                                'close': Ext.bind(this.onPortletClose, this)
                            }
                        }]
                    }]
                }

portalpanel如果我们能以某种方式创建一个内部的任何想法tabpanel(使用现有的门户示例) Please help!!!!

4

1 回答 1

1

您在 ajas 选项卡中使用 ajax 选项卡您的调用 url,在该 url 中您显示的门户面板如下代码

            var tabs2 = Ext.widget('tabpanel', {
                renderTo: document.body,
                activeTab: 0,
                width: 600,
                height: 250,
                plain: true,
                defaults :{
                    autoScroll: true,
                    bodyPadding: 10
                },
                items: [{
                        title: 'Normal Tab',
                        html: "My content was added during construction."
                    },{
                        title: 'Ajax Tab 1',
                        loader: {
                            url: 'ajax1.htm',
                            contentType: 'html',
                            loadMask: true
                        },
                        listeners: {
                            activate: function(tab) {
                                tab.loader.load();
                            }
                        }
                    },{
                        title: 'Ajax Tab 2',
                        loader: {
                            url: 'ajax2.htm',
                            contentType: 'html',
                            autoLoad: true,
                            params: 'foo=123&bar=abc'
                        }
                    },{
                        title: 'Event Tab',
                        listeners: {
                            activate: function(tab){
                                setTimeout(function() {
                                    alert(tab.title + ' was activated.');
                                }, 1);
                            }
                        },
                        html: "I am tab 4's content. I also have an event listener attached."
                    },{
                        title: 'Disabled Tab',
                        disabled: true,
                        html: "Can't see me cause I'm disabled"
                    }
                ]
            });
于 2013-03-20T12:59:27.460 回答