經常會有人問我為什麼我的Grid不能歲窗口的變得而自動調整了解後發現很多人都習慣在渲染子組件的時候將Gird渲染到容器內的一個div裡而這正是問題的所在
在Ext JS的布局系統中能控制到的是容器的子組件而對於渲染到容器中一個DIV的Grid它並不知道在這容器裡添加了一個Grid當調整大小的時候也就無法去調整Grid的大小了而這也就是為什麼Grid不會隨容器的改變而改變了
為什麼那麼多人喜歡使用這種方式來添加子組件呢?我想原因主要有以下兩點
不知道如何在容器內添加子組件
習慣了使用JQuery等其他框架的開發方法一時無法改變
第一個原因只要是動態添加Grid搞到很多初學者束手無策譬如我的Grid要從遠程返回後才知道怎麼創建我怎麼去拿這個腳本和添加到容器呢?筆者在學習Ext JS也犯過這樣的錯誤可以理解所以本文的作用就是來解惑的
辦法有兩個一是使用Ajax把整個Grid(或其他組件的配置對象)加載到本地然後使用容器的add方法就可以將組件添加到容器一是直接使用容器的load功能直接加載子組件並渲染返回的數據就是子組件的配置對象
第二個原因是習慣問題只能自己去修正了盡快熟悉Ext JS的開發模式就可以很容易改掉這個習慣
如果是使用Ext JS 的MVC做開發基本不會出現這麼尴尬的情況了因而可以將子組件做成視圖然後在控制器中將視圖添加到容器中就可以了
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/20076.html