2

我需要允许我的用户通过单击一个按钮来提交多个属性地址,该按钮将插入一个带有额外文本字段的字段集。我可以简单地使用 form.insert(index, component); 但是,该索引将在用户添加其他属性后发生变化。例如,添加额外属性的索引在第 7 个组件之后,使索引为 7。但是当您在 7 处插入它时,它的索引现在是 7,并且将在其上方插入下一个属性。当您尝试使用相同形式的联系电子邮件和号码来执行此操作时,这种效果会更加复杂。所以我的问题是,如何以我希望在之后插入额外字段的形式获取组件的索引?

4

2 回答 2

0
fieldset.items.getCount()

还是我错过了什么?

于 2012-06-02T23:01:20.307 回答
0

不完全直截了当,但也不算太糟糕。看看下面的代码:第一部分是添加一组字段的按钮处理程序,第二部分是创建索引字段的实际函数。

    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 回答