跟我一起學extjs5(25--模組Form的自訂的設計[3])

來源:互聯網
上載者:User

標籤:extjs5   sencha   開發經驗   

跟我一起學extjs5(25--模組Form的自訂的設計[3])        自訂的Form已經可以運行了,下面改一下配置,把Form裡面的FieldSet放在Tab之下。修改一下ModuleModel.js中的data下的tf_FormSchemes下的方案,增加一個屬性。

        上面設定好了以後,可以看到Form中FieldSet都放置在Tab中了,下面的展示了二個Tab的介面。

        從理論上說,如果你的Form配置資訊設定得合理,可以得到你想要的任何樣式的Form。但在實際應用的時候,我們只要完成大部分能自動產生就足夠了,真正程式中有超級變態複雜的Form結構,可以自己編指令碼產生。上面的代碼和樣本只是展示了如何自訂一個Form,要能夠真正的適用還得做很多工作,對於初學者或者經驗還不是很豐富的程式員來說,這把這個當成一個拓展視野的例子看看就行了。
        上面是一個編輯的視窗,資料編輯了以後要儲存回model中,這個儲存沒有用到MVVM特性,我直接寫在BaseForm.js中的按鈕控制項裡了。
this.buttons.push({text : '儲存',itemId : 'save',glyph : 0xf0c7,handler : function(button){button.up('form').getForm().updateRecord();}},{text : '關閉',itemId : 'close',glyph : 0xf148,handler : function(button){button.up('window').hide();}});

        一個Form在用loadRecord(model)函數從model中調用資料後,可以用getRecord()來返回model,在資料修改了以後可以直接用updateRecord()來用form中的值更新到model中。        在儲存的handler中執行了這條語句:button.up(‘form‘).getForm().updateRecord();給初學者講一下,button.up(‘form‘),就是從這個button的第一個父容器開始一直往上遞迴,直到找到form為止,這是一個非常好的根據控制項找到另一個控制項的辦法,建立大家都用這種方法來尋找控制項,不要用getCmp(id) 的這種直接尋找的方式。與up對應的還有一個down方法,是尋找本控制項的子控制項的函數。上例中加入了這個方法之後,就可以儲存資料了。


        



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.