0

アプリケーションで詳細な項目フォームを作成しようとしています。3 つのフォーム コントロールを含む Ext.Panel のサブクラスを作成しました。次に、そのコントロールを表示可能なパネルに追加し始めました。一度だけ登場します。他のものは高さが 0 に設定されています。コードは次のとおりです。

app.views.Forms.materialsLineItem = Ext.extend(Ext.Panel, {
    layout: {
        type: 'hbox',
        pack: 'center'
    },
    items: [
        new Ext.form.Spinner({
            width: 150
        }),
        new Ext.form.Text({
            placeHolder: 'Description',
            width: 400
        }),
        new Ext.form.Text({
            placeHolder: 'Price',
            width: 150
        })
    ]
});

app.views.Forms.Materials = new Ext.Panel({
    fullscreen: true,
    layout: {
        type: 'vbox',
        align: 'stretch'
    },
    items: [
        new app.views.Forms.materialsLineItem(),
        new app.views.Forms.materialsLineItem(),
        new app.views.Forms.materialsLineItem()
    ]
});
4

1 に答える 1

1

うーん、次のようにオブジェクト リテラルを使用してフォーム コンポーネントを宣言すると機能します。

app.views.Forms.materialsLineItem = Ext.extend(Ext.Panel, {
    layout: {
        type: 'hbox',
        pack: 'center'
    },
    items: [{
        xtype: 'spinnerfield',
        width: 150
    }, {
        xtype: 'textfield',
        placeHolder: 'Description',
        width: 400
    }, {
        xtype: 'textfield',
        placeHolder: 'Price',
        width: 150
    }]
});

私の推測では、あなたの方法ではフィールドを 1 回しか作成せず、sencha では同じコンポーネントを複数のコンテナーに追加することはできないため、最初の 2 つのパネルには実際には何も含まれていませんでした。

Chrome の JavaScript コンソールの要素を見ると、最初の 2 つのパネルが空の div になっていることがわかります。

于 2011-02-06T01:29:30.690 に答える