面板内的extjs gridpanel不会自动滚动或调整大小

时间:2012-08-12 23:19:14

标签: extjs extjs4

我有一个tabpanel。在选项卡中,我有一个面板,其中包含一个工具栏和3个项目:[fieldset,gridpanel和另一个fieldset(或一些按钮)]。我无法让gridpanel显示滚动条。它仅在我设置网格面板的最大高度/最小高度时才有效 我也尝试在一个容器内包装gridpanel。没运气。 在示例中,我使用适合布局。我尝试了“锚”布局,并为gridpanel指定了锚:'100%50%',希望在我调整浏览器大小时它会调整大小。没有运气。

或者,如果gridpanel是选项卡中的唯一项目,则autoscroll将起作用。所以它出现在另一个面板中时,自动滚动/调整大小不起作用。

我在这里错过了什么吗?

Ext.application({
    name: 'MyApp',
    launch: function () {

        // create the data store
        var d = ['company', 100];
        var myData = [];
        for (var i = 0; i < 50; i++) {
            myData[i] = d;
        }
        var store = Ext.create('Ext.data.ArrayStore', {
            fields: [{
                name: 'company'
            }, {
                name: 'price',
                type: 'float'
            }],
            data: myData
        });

        Ext.create("Ext.container.Viewport", {
            layout: {
                type: 'border'
            },
            items: [{
                xtype: 'toolbar',
                id: 'headerbar',
                region: 'north',
                height: 30
            }, {
                xtype: 'toolbar',
                id: 'menubar',
                region: 'north',
                height: 30
            }, {
                xtype: 'tabpanel',
                itemId: 'maintabpanel',
                activeTab: 0,
                region: 'center',
                plain: true,
                margins: '5 5 5 5',
                layout: 'fit',
                items: [{
                    closable: false,
                    title: 'Tab',
                    margins: '0 0 0 0',
                    items: [{
                        xtype: 'panel',
                        title: 'Panel',
                        layout: 'fit',
                        tools: [{
                            type: 'help',
                            tooltip: 'Help'
                        }, {
                            type: 'close',
                            tooltip: 'Close'
                        }],
                        items: [{
                            xtype: 'fieldset',
                            title: 'Field Set',
                            layout: 'hbox',
                            items: [{
                                xtype: 'textfield',
                                fieldLabel: 'Input'
                            }]
                        }, {
                            xtype: 'gridpanel',
                            autoScroll: true,
                            store: store,
                            columns: [{
                                text: 'Company',
                                flex: 1,
                                sortable: true,
                                dataIndex: 'company'
                            }, {
                                text: 'Price',
                                flex: 1,
                                sortable: true,
                                dataIndex: 'price'
                            }],
                            viewConfig: {
                                autoFit: true
                            }
                        }, {
                            xtype: 'fieldset',
                            title: 'Field Set 2',
                            layout: 'hbox',
                            items: [{
                                xtype: 'textfield',
                                fieldLabel: 'Output'
                            }]
                        }]

                    }]
                }]
            }, {
                xtype: 'box',
                id: 'footer',
                region: 'south',
                html: '<h1> Copyright 2012</h1>',
                height: 30
            }]
        });
    }
});

1 个答案:

答案 0 :(得分:2)

请注意,gridpanel的父面板具有fit布局,但它有多个项目(fieldset,gridpanel和另一个fieldset)。 fit布局只能有一个孩子。

此外,fit面板的父级(带closable : false的面板 - 标签)没有布局定义。

这是一个有效的JsFiddle modified version of your code