3

我正在爲我的應用程序使用extjs字段容器,其中包含表單中的詳細信息,資金,依賴項部分。在基金&家屬節我有一個按鈕'添加另一個',這是爲了添加一個新的行項目,每次點擊按鈕。將extjs項目動態添加到字段容器中

這是我創建 http://jsbin.com/evevod/4/edit

形式我是新來extjs4。任何人都可以請幫助我如何動態地onclick創建一個項目。

回答

9

下面是示例處理程序。

handler: function() { 
    var container = this.up('fieldset'); 
    var config = Ext.apply({}, container.initialConfig.items[0]); 
    config.fieldLabel = container.items.length + 1; 
    container.add(config); 
} 

基本上它發現其保持行父組件(這是字段集),接入initialConfig屬性,發現在它(items[0])第一行配置,使得配置(Ext.apply)的淺拷貝,並將其添加到容器(container.add )。

工作樣本:http://jsbin.com/evevod/6/edit#preview

+0

謝謝你,究竟是什麼我期待的。 – Ravi 2012-02-22 16:34:34

+0

嗨,我已經在應用程序中實現了相同的功能,但卻遇到了一個問題。我們可以在默認情況下將ID分配到依賴和資金領域,並點擊'添加另一個'按鈕(依賴和資金)項目,應該爲所有的依賴和資金領域動態生成一個新ID。例如我們有最初一組字段的title1,fname1,lname1,我們希望將title2,fname2,lname2,title3,fname3,lname3等作爲附加字段的ID。 – Ravi 2012-02-29 01:28:13

+1

您可以直接在處理程序中更改名稱,或者可以創建一些將爲新行創建配置的功能。例如[這裏](http://jsbin.com/evevod/9/edit)我已經創建了'getDepConfig'函數。 – Krzysztof 2012-02-29 08:14:22

1

我們可以改變字段的名稱是這樣的:

var container = this.up('fieldset'); 
var config = Ext.apply({}, container.initialConfig.items[0]); 
config.fieldLabel = container.items.length+1; 
config.items[0].name = 'fname' + config.fieldLabel; 
config.items[1].name = 'lname' + config.fieldLabel; 
config.items[2].name = 'title' + config.fieldLabel;