Динамическое добавление элементов extjs в контейнер поля - PullRequest
3 голосов
/ 22 февраля 2012

Я использую контейнер поля extjs для своего приложения, в котором у меня есть данные, фонды, разделы с зависимостями в форме.В разделе «Фонды и зависимые лица» у меня есть кнопка «Добавить еще», которая предназначена для добавления новой позиции каждый раз, когда нажимается эта кнопка.

Это форма, которую я создал http://jsbin.com/evevod/4/edit

Я новичок в extjs4.Может ли кто-нибудь, пожалуйста, помогите мне, как создать элемент динамически по клику.

Ответы [ 2 ]

10 голосов
/ 22 февраля 2012

Ниже приведен пример обработчика.

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

В основном он находит родительский компонент, который содержит строки (который является fieldset), имеет доступ к свойству initialConfig, находит в нем конфигурацию первой строки (items[0]), создает поверхностную копию конфигурации (Ext.apply) и добавляет ее в контейнер (container.add).

Рабочий образец: http://jsbin.com/evevod/6/edit#preview

1 голос
/ 06 июля 2012

Мы можем изменить имя поля следующим образом:

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;
...