經常會有人問我,為什么我的Grid不能歲窗口的變得而自動調整。了解后,發現很多人都習慣在渲染子組件的時候將Gird渲染到容器內的一個div里,而這正是問題的所在。
在Ext JS的布局系統中,能控制到的是容器的子組件,而對于渲染到容器中一個DIV的Grid,它并不知道在這容器里添加了一個Grid,當調整大小的時候,也就無法去調整Grid的大小了,而這也就是為什么Grid不會隨容器的改變而改變了。
為什么那么多人喜歡使用這種方式來添加子組件呢?我想原因主要有以下兩點:
1. 不知道如何在容器內添加子組件,
1. 習慣了使用JQuery等其他框架的開發方法,一時無法改變
第一個原因,只要是動態添加Grid,搞到很多初學者束手無策,譬如,我的Grid要從遠程返回后才知道怎么創建,我怎么去拿這個腳本和添加到容器呢?筆者在學習Ext JS也犯過這樣的錯誤,可以理解。所以,本文的作用就是來解惑的。
辦法有兩個:一是,使用Ajax把整個Grid(或其他組件的配置對象)加載到本地,然后使用容器的add方法就可以將組件添加到容器;一是直接使用容器的load功能,直接加載子組件并渲染,返回的數據就是子組件的配置對象。
第二個原因是習慣問題,只能自己去修正了,盡快熟悉Ext JS的開發模式就可以很容易改掉這個習慣。
如果是使用Ext JS 4的MVC做開發,基本不會出現這么尷尬的情況了,因而可以將子組件做成視圖,然后在控制器中將視圖添加到容器中就可以了。
- 前言
- extjs 4 tree 的text不顯示
- 窗口顯示時讓字段獲得焦點
- 如何編寫一個使用Store更新復選框的CheckboxGroup的插件
- 如何了解事件中回調函數的參數
- 很多人需要的,帶時間的日期選擇器
- 一個網上找到的,在Grid中嵌套Grid的示例:Nested Grids Example
- 修改Ext.ux.GroupTabPanel讓它支持延遲渲染
- 初學者比較容易犯的布局錯誤(手風琴布局)
- Ext JS添加子組件的誤區
- 使用Ext JS,不要使用頁面做組件重用,盡量不要做頁面跳轉
- 【翻譯】十大要避免的Ext JS開發方法
- 一個不錯的擴展:Ext.ux.container.ButtonSegment
- 在VS2012中實現Ext JS的智能提示太簡單了
- 為什么要使用“var me=this”這樣的寫法
- 一個很不錯的支持Ext JS 4的上傳按鈕
- 【翻譯】熱門支持小提示:2013年12月
- 【翻譯】在Ext JS應用程序中使用自定義圖標
- 演練Ext JS 4.2自定義主題
- 【翻譯】培訓提示:解決常見編碼問題的簡單技巧
- 【翻譯】從Store生成Checkbox Group
- 【翻譯】將Ext JS Grid轉換為Excel表格
- 【翻譯】Ext JS 5:為不同設備設置不同的主題