1

2つのxtypeを1つに追加する方法はありますか?つまり、1つのxtypeをテキストフィールドとして、もう1つをボタンとして使用します。ここでは、テキストフィールドの横にあるボタンのコードとその動作を示しています。しかし今、私はテキストフィールドとボタンの両方を単一で必要としています。

   {
        layout: "column",
        anchor: "0",
        items: [{
            columnWidth: .5,
            layout: "form",
            items: {
                xtype: "textfield",
                name: "agent",
                fieldLabel: "Representant",
                anchor: "0"
            }
        },{
            columnWidth: .5,
            items: {
                xtype: 'button',
                text: 'Click me'
            }
        }]
    }
4

2 に答える 2

1

要件については、sraが言っているように、triggerfield(または、ボタンが2つある場合はtwinTriggerField)を使用することをお勧めします。

他のフィールドを組み合わせるには、 compositeFieldを確認することもできます。

于 2012-09-18T08:40:23.740 に答える
1

xtypeまたはwidget

xtypeは、クラスの一種のshortconstructorです。クラス内にネストできるものは、クラスによって異なります。テキストフィールドに関しては、子を追加することはできません。クラスに関する詳細情報が必要な場合は、APIを確認する必要があります。基本的に、質問で行ったようにネストできます

あなたが望むもののために

これを本当にきれいにするには、テキストフィールドを拡張するか、トリガーフィールド(これにはレイアウトを変更できるボタンがすでにあります)を使用するか、適切なフィールドに追加できるプラグインを作成します。

コメント回答

次のテストされていないコードを試すことができます!container複合フィールドの代わりに、適用されたレイアウトでを使用することもできhboxます。しかし、これは私にとってより適していると感じます。

{
    xtype: 'compositefield',
    labelWidth: 120
    items: [
        {
            xtype     : 'textfield',
            fieldLabel: 'Title',
            flex      : 1,
            ref       : '../myTextfieldRef' // set a selfreference to the ownerCt
        },
        {
            xtype     : 'button',
            iconCls   : 'icon-class-name',
            text      : 'My Button Text',
            width     : 20,
            ref       : '../myButtonRef', // set a selfreference to the ownerCt
            handler   : function(btn) {
                console.log(btn.ownerCt.myTextfieldRef.value);
            }
        }
    ]
}
于 2012-09-18T06:22:07.467 に答える