2013-04-16 29 views
1

我想通過拖放動態地將新的字段放入容器(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

+0

一個思路來解決,這是一樣,你需要將多個佔位符(投擲的容器)的形式面板裏面,這樣你就可以更換新放置控件的容器。 – Rency

+0

我怎樣才能得到它的控制和位置? @Rency – url

回答

0

有這個由煎茶,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