2

追加のテキストフィールドを含むフィールドセットを挿入するボタンをクリックして、ユーザーが複数のプロパティアドレスを送信できるようにする必要があります。これは、form.insert(index、component);を使用して簡単に行うことができます。ただし、ユーザーがプロパティを追加すると、そのインデックスは変更されます。たとえば、追加のプロパティを追加するインデックスは7番目のコンポーネントの後にあり、インデックスは7になります。ただし、7に挿入すると、インデックスは7になり、次のプロパティがその上に挿入されます。同じフォームの連絡先メールアドレスと番号を使用してこれを実行しようとすると、この効果はさらに複雑になります。だから私の質問は、追加のフィールドを挿入したいフォームでコンポーネントのインデックスを取得するにはどうすればよいですか?

4

2 に答える 2

0

正確に単純ではありませんが、それほど悪くはありません。次のコードを見てください。最初の部分はフィールドのセットを追加するためのボタンハンドラーであり、2番目の部分はインデックス付きフィールドを作成する実際の関数です。

    handler:function () {
        var parts = this.up('fieldset'),
        index = parts.query('fieldcontainer').length, //calculate existing Part line items
        fields = this.up('window').createPartFieldContainer(index);
        parts.add(fields);
    }



createPartFieldContainer:function (index) {
    index = index || 0;
    return {
        xtype:'fieldcontainer',
        items:[
            { 
                xtype:'textfield', fieldLabel:'Item',
                name:'lineItem[' + index + '].itemNumber', width:100,
                emptyText:'Part Number'
            }
        ]
    }
}
于 2012-06-04T06:07:14.693 に答える
0
fieldset.items.getCount()

または、何か不足していますか?

于 2012-06-02T23:01:20.307 に答える