我們先創建一個帶幾個選項的樹:
| var root = new Ext.tree.TreeNode({ text: '選項', allowDrag: false, allowDrop: false }); root.appendChild(new Ext.tree.TreeNode({ id: 1, text: '選項一', allowDrag: false }), new Ext.tree.TreeNode({ id: 2, text: '選項二', allowDrag: false }), new Ext.tree.TreeNode({ id: 3, text: '選項三', allowDrag: false }), new Ext.tree.TreeNode({ id: 4, text: '選項四', allowDrag: false })); var tree = new Ext.tree.TreePanel({ style: 'margin:20px 0 0 20px', title: '選項列表', width: 200, height: 300, root: root }) tree.render(document.body); root.expand(); | 
代碼里先創建了一個樹節點root,這個將作為樹的根節點,然后加入了id分別為1、2、3、4的子節點,這4個子節點就是combobox選擇項,id是combobox的提交值,text是顯示值。
下面創建一個combobox,:
| var combo = new Ext.form.ComboBox({ | 
combobox使用了SimpleStore作為它的sotre,SimpleStore定義了id和text兩個字段,id作為combobox的值字段(valueField :"id"),text作為combobox的顯示字段(displayField: "text")。Combobox的操作模式是本地模式(mode: 'local')。
下面創建一個formpanel,將combobox放到formpanel里。還定義一個“改變選項”按鈕來改變combobox的選擇項。
| var simpleForm = new Ext.FormPanel({ | 
我們先來測試一下頁面。頁面加載完后,combobox是沒有選擇項的,我們單擊“改變選項”按鈕,就有選擇項了。
我們來分析一下按鈕的單擊事件:
| var data = []; | 
在第1行,首先定義了一個空數組data。在第2行清理combobox的值狀態,避免當前選擇值不存在,不過你也可以保留,不執行這句。第3和6行通過一循環,遍歷樹根節點root的子節點,第4行取得一個子節點,在第5行將子節點的id和text組成一個數組增加到data數組中。在第7行將數據加載到combobox的store中。
是不是很簡單?呵呵。希望本文能給大家一下幫助,多謝!
本文的完整代碼:
| <!DOCTYPE HTML PUBLIC "-//W 3C //DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> | 
單擊這里可下載本問例子。
注:這次只單獨打包了本例子的html文件,大家注意一下js和css的路徑就可以了。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1814139
新聞熱點
疑難解答