1

動的に追加されたフィールド (さまざまなサイズ) を持つフォームがあります。フィールドセットに多数のフォームフィールドを配置し、フィールドセットの境界線をすべてのフィールドを含めるのに十分な大きさにしたいと考えています。

問題を示す(醜い)例を次に示します。

var win = new Ext.Window({
    xtype: 'form',
    layout: 'form',
    height: 200,
    width: 500,
    title: 'Testing',
    items: [{
        xtype: 'fieldset',
        layout: 'hbox',
        autoHeight:true,
        autoWidth: false,
        title: 'Fieldset',
        defaults: {
            border: false,
            layout: 'form',
            labelAlign: 'top',
            labelSeparator: ''
        },
        items: [{
            items: new Ext.form.TextField({
                fieldLabel: 'Col1',
                name: 'col1',
                value: 'nothing',
            })
        }, {
            items: new Ext.form.TextField({
                fieldLabel: 'Col2',
                name: 'col2',
                value: 'something'
            })
        }]
    }, 
        new Ext.form.TextField({
            fieldLabel: 'Col3',
            name: 'col3',
            value: 'anything'
        })
    ]
}).show();

これは次のようになります。代替テキスト

含まれるフィールドの幅は事前にわからないので、幅を指定することはできません。

提案をありがとう。

4

2 に答える 2

0

あなたが求めたものではありませんflex: 1が、フィールドセットのデフォルトに追加すると、フィールドはフィールドセットの境界内で均等に配置されます。

于 2010-11-23T04:04:46.137 に答える
0

わかりました、いくつかのフィールドセット プロパティを変更することで機能します:
レイアウトを「テーブル」に、
autoWidth を true に、
「float:left」で cls を追加し (これをスタイルに入れることは役に立たないようです)
、float をクリアするダミー要素を追加します:
{ xtype: 'コンポーネント', スタイル: 'クリア: 両方' }

希望どおりに表示されるようになりました!

于 2010-11-24T15:08:46.050 に答える