5

タブパネルがあります。タブには、ツールバーと 3 つの項目 [フィールドセット、グリッドパネル、および別のフィールドセット (またはいくつかのボタン)] を含むパネルがあります。スクロールバーを表示するグリッドパネルを取得できません。グリッドパネルの最大高さ/最小高さを設定した場合にのみ機能します。
また、コンテナ内に gridpanel をラップしてみました。運がない。例では、フィット レイアウトを使用します。「アンカー」レイアウトを試し、アンカー: '100% 50%' を gridpanel に割り当てて、ブラウザのサイズを変更するとサイズが変更されることを期待しました。運がない。

または、グリッドパネルがタブ内の唯一のアイテムである場合、自動スクロールが機能します。そのため、別のパネル内にあるときに表示され、自動スクロール/サイズ変更は機能しません。

ここで何か見逃しましたか?

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
            }]
        });
    }
});
4

1 に答える 1

2

gridpanel の親パネルにはfitレイアウトがありますが、複数の項目 (フィールドセット、グリッドパネル、および別のフィールドセット) があることに注意してください。fitレイアウトは 1 つの子のみを持つことができます。

また、そのfitパネルの親 (closable : falseタブのあるもの) にはレイアウト定義がありません。

これは、動作するコードのJsFiddle 修正バージョンです

于 2012-08-12T23:48:31.010 に答える