2013-01-08 75 views
-1

我試圖做一個視圖與多個窗體(5)每一個fieldset裏面但是從我讀過的視圖只能包含1 formpanel,當我設置5只顯示第一個。不能有一個視圖與多個窗體(SENCHA TOUCH 2)

起初我是用多個字段集美景,並得到了我想要的樣子,但是,這個方案並不讓我來存儲記錄設置爲這些字段集,所以我可以在同一視圖中管理多個記錄,所以我不得不嘗試使這些字段集有一個父窗體,因此我的問題開始了。

MyConfigView.js:

Ext.define('MyApp.view.MyConfigView',{ 
extend: 'Ext.Panel', 
alias: 'widget.configview', 
config:{ 
     layout: { 
      type: 'card', 
      animation:{ 
       type: 'slide', 
       direction: 'left', 
       duration: 8000 
      } 
     }, 
     items:[ 
     { 
       docked: 'top', 
       xtype: 'toolbar', 
       ui: 'light', 
       title: 'Yadayada', 
       itemId: 'toolbarMyConfigView', 
       items: [{ 
        xtype: 'button', 
        ui: 'back', 
        text: 'Voltar', 
        action: 'voltarConfigView', 
        itemId: 'toolbarMyConfigViewVoltarBt' 
       } 

       ] 

     }, 
        { 
        xtype: 'formpanel', 
        items:[ 
        { 
         xtype: 'fieldset', 
         title: 'Yada', 
         id: 'fieldSetAssalto', 
         model: 'Socorro.model.MyModel', 
         cls: 'x-floating', 
         items:[ 
          { 
           xtype: 'textfield', 
           name: 'numeroTelefone', 
           label: 'Yada' 
          }, 
          { 
           xtype: 'textfield', 
           name: 'mensagem', 
           label: 'Yada' 
          } 
         ] 
        } 
        ] 
       }, 

       { 
       xtype: 'formpanel', 
       items:[ 

        { 
         xtype: 'fieldset', 
         title: 'YADA', 
         itemId: 'fieldSetIncendio', 
         model: 'Socorro.model.MyModel', 
         cls: 'x-floating', 

         items:[ 
          { 
           xtype: 'textfield', 
           name: 'numeroTelefone', 
           label: 'yadada' 
          }, 
          { 
           xtype: 'textfield', 
           name: 'mensagem', 
           label: 'yaaada' 
          } 
         ] 
        } 
        ] 
       }, 
       { 
       xtype: 'formpanel', 
       items:[ 
        { 
         xtype: 'fieldset', 
         title: 'YADADA', 
         itemId: 'fieldSetSequestro', 
         model: 'Socorro.model.MyModel', 
         cls: 'x-floating', 

         items:[ 
          { 
           xtype: 'textfield', 
           name: 'numeroTelefone', 
           label: 'Yadaaa' 
          }, 
          { 
           xtype: 'textfield', 
           name: 'mensagem', 
           label: 'yadada' 
          } 
         ] 
        } 
        ] 
       }, 
       { 
       xtype: 'formpanel', 
       items:[ 
        { 
         xtype: 'fieldset', 
         title: 'YADA', 
         itemId: 'fieldSetEmedico', 
         model: 'Socorro.model.MyModel', 
         cls: 'x-floating', 

         items:[ 
          { 
           xtype: 'textfield', 
           name: 'numeroTelefone', 
           label: 'YADAA' 
          }, 
          { 
           xtype: 'textfield', 
           name: 'mensagem', 
           label: 'Yada' 
          } 
         ] 
        } 
        ] 
       }, 
       { 
       xtype: 'formpanel', 
       items:[ 
         { 
          xtype: 'fieldset', 
          title: 'Yada', 
          itemId: 'fieldSetAcidente', 
          model: 'Socorro.model.MyModel', 
          cls: 'x-floating', 

          items:[ 
           { 
            xtype: 'textfield', 
            name: 'numeroTelefone', 
            label: 'Yada' 
           }, 
           { 
            xtype: 'textfield', 
            name: 'mensagem', 
            label: 'Yada' 
           } 
          ] 
         } 


        ] 
       } 



] 
} 

}); 

我如何能得到與多個formpanels使用煎茶觸摸2工作視圖任何想法?

回答

1

這是因爲您的MyApp.view.MyConfigView視圖應用了「卡片」佈局,並且這種佈局允許您僅將單個子視圖顯示爲活動狀態。 要在同一個視圖中顯示所有這些,我建議你設置你的視圖配置如下:

Ext.define('MyApp.view.MyConfigView',{ 
    extend: 'Ext.Container', 
    alias: 'widget.configview', 
    config:{ 
     layout: { 
      type: 'vbox', 
      align: 'stretch' 
     } 
     defaults: { 
      flex: 1 
     }, 
     items: [ 
      ... 
     ] 
    } 
}); 

通過這種方式,您將垂直處置formpanels在你看來,給他們相同的高度。 PS:從它們中移除'x-floating'類。但是,如果你想使用卡布局(這似乎是最好的解決方案),我建議你給所有你的formpanels一個不同的「itemId」配置參數。

xtype: 'formpanel', 
itemId: 'assalto', 
items: [ 
    ... 
] 

然後,使用ST MVC架構,逐個獲取這些表單並調用函數。

.setRecord(<YOUR_RECORD>); 

在Sencha的文檔上了解更多有關ST控制器的信息。 http://docs.sencha.com/touch/2-1/#!/guide/controllers

+0

其中的一些配置,我試圖讓這個工作的殘羹剩飯,對不起!我理解使用容器而不是卡的解決方案,但我沒有得到你的答案的第二部分,關於使用卡布局的可能性,因爲如果我使用它,它將不會顯示其他的窗體。 – thiagocfb

+0

別擔心。爲了顯示其他容器卡片(在你的情況下是其他的formpanels),你需要調用MyApp.view.MyConfigView上的setActive方法使它們處於活動狀態,從而在屏幕上可見。您可以通過以下網址獲取更多信息:http://docs.sencha.com/touch/2-1/#!/api/Ext.layout.Card –