extjs向动态表单添加其他字段

时间:2012-06-02 15:47:14

标签: extjs extjs4

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

2 个答案:

答案 0 :(得分:0)

fieldset.items.getCount()

或者我错过了什么?

答案 1 :(得分: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'
            }
        ]
    }
}