October 22, 2009
鼓勵此網誌:0
同事詢問怎樣隱藏 combo box,
本來以為只要下 hide() 指令,
後來發現沒那麼簡單。

以上圖為例,有一個 combo box 和兩個按鈕,
按下按鈕的 handler 分別為
Ext.getCmp("comboName").show();
|
但執行後會發現只有 combo box 控制項本身被隱藏,
控制項前頭的 label 一點影響也沒有。

嘗試所有 combo box 看起來很像的 methods 都沒用後,
便轉而查詢網路上的資料,
果然得到了解答:
1: // for validation 2: Ext.getCmp("comboName").disable(); 3: 4: // hide combo box 5: Ext.getCmp("comboName").hide(); 6: 7: // hide label 8: Ext.getCmp("comboName").getEl().up('.x-form-item').setDisplayed(false); |
本來以為「.x-form-item」所指的是 label 元件,
後來發現是包住 label & combo box 的 <div>,
那下這行指令就可以隱藏了啊。

嘗試了一下,真的可以,
只是為什麼隱藏 combo box 竟然不包含其 label?
這真的是奇怪的現象啊。
- Hiding the combobox and the label sometime? - Ext JS Forums
- Ext JS - Blog
很酷的 Ext JS Designer(a visual IDE tools to develop EXTJS)








