Добавете динамично нови полета към съществуващ панел с формуляри

Искам да добавя нови полета, поставени вътре в контейнер ( layout:hbox ) към FormPanel динамично чрез плъзгане и пускане.

Докато пускам в панела с формуляри, мога да добавям полета динамично. Но искам да добавя позицията, в която са паднали.

var dynamicField = Ext.create('Ext.container.Container',{
                            layout : 'hbox',

                             items: [{
                                                                xtype:'textfield',
                                                                fieldLable:'Test'

                                                           }, {
                                     xtype : 'image',
                                     src : 'images/cancel.png',
                                     hidden : true

                                  }]
                                      });


                          formPanel.add(dynamicField);

                               //   tried    dynamicField.showAt(e.getXY());

с dynamicField.showAt(e.getXY()) няма късмет //e е обектът на събитието

Може ли някой да ми предложи как мога да постигна?

Поздрави URL


person url    schedule 16.04.2013    source източник
comment
Една идея за разрешаване на това е, че трябва да поставите множество контейнери за място (спускаеми контейнери) в панела на формуляра, така че да можете да замените контейнера с новопоставената контрола.   -  person Rency    schedule 16.04.2013
comment
Как мога да получа контрола и позицията му? @Ренси   -  person url    schedule 19.04.2013


Отговори (1)


Има примерен пример за това, предоставен от sencha, http://docs.sencha.com/extjs/4.1.3/#!/example/dd/dragdropzones.html. В това ние създаваме персонализирана област с възможност за пускане и можем да добавим всичко към нея. проверете кода на тази проба.

 onNodeDrop : function(target, dd, e, data){
        var rowBody = Ext.fly(target).findParent('.x-grid-rowbody-tr', null, false),
            mainRow = rowBody.previousSibling,
            h = gridView.getRecord(mainRow),
            targetEl = Ext.get(target);

        targetEl.insert(<your control>); // here we can add control directly into it.
        return true;
    }

За разбиране на плъзгане и пускане има добро ръководство: http://docs.sencha.com/extjs/4.1.3/#!/guide/drag_and_drop

person Rency    schedule 22.04.2013