1

ここで奇妙な問題が発生しているようです。拡張コンポーネントのコードは次のとおりです。

MyApp.panels.RelationshipDetails = Ext.extend(Ext.FormPanel, {
    closable: true,
    relationshipId: null,
    documentId: null,
    title: 'Relationship',
    initComponent: function () {
        if (!this.verifyRequiredData()) {
            MyApp.panels.RelationshipDetails.superclass.initComponent.call(this);
            return;
        }

        // Build components
        this.tbar = this.buildToolbar();
        this.items = this.buildDetailItemArray();

        MyApp.panels.RelationshipDetails.superclass.initComponent.call(this);
    },

    verifyRequiredData: function () {
        // Verification code here
    },

    buildDetailItemArray: function () {
        return [{
            xtype: 'fieldset',
            title: 'Details',
            collapsible: true,
            autoHeight: true,
            items: [{
                xtype: 'hidden',
                name: 'Id'
            }, {
                xtype: 'textfield',
                fieldLabel: 'Name',
                name: 'Name'
            }, {
                xtype: 'textfield',
                fieldLabel: 'Description',
                name: 'Description'
            }, {
                xtype: 'button',
                text: 'Save',
                name: 'saveButton'
            }]
        }];
    },

    buildToolbar: function () {
        return new Ext.Toolbar({
            // Toolbar Config
        });
    }
});

問題は、このパネルがレンダリングされるときに、ツールバーだけがレンダリングされることです。BuildDetailItemArray()デバッグを通じて、それが正しく呼び出され、正しい結果を返していることがわかります。

this.tbar =ツールバーが存在しない場合、フィールドセットとフィールドが正しくレンダリングされるため、行をコメントアウトするとさらに奇妙になります。Panelこれは、の代わりに拡張しても発生しFormPanelます。また、フォームフィールドをそれ自体のコンポーネントに抽象化してみましたが、同じことが起こります。

なぜこれがうまくいかないように見えるのか誰かが知っていますか?

4

1 に答える 1

1

このパネルをどのようなレイアウトにしようとしていますか?また、このパネルの高さを設定していますか?

多くの場合、追加するコンポーネントの高さを指定していない場合(この場合はこのパネル)、またはAnchorLayoutを使用している場合にアンカーを設定していない場合、コンポーネントのコンテンツは表示されませんが、ツールバーは引き続き表示されます。意思。

全体的なレイアウトでこのパネルのコンテキストを知っておくとよいでしょう。

于 2010-12-16T16:43:10.127 に答える