項目中需要用下拉樹來展示數據,到網上搜了下沒有想要的東西,有些是自己寫的下拉樹,官方的api也沒有treeCombobx這樣的東西,但是在extjs4源碼包裏面卻有一個叫treePicker的東西,這正是官方提供的下拉樹,但是api裏面也沒有使用的例子。網上也沒有相關的用法,沒辦法,只有自己看源碼慢慢摸索,好在最後終於摸索出來了。
{ xtype : 'treepicker', displayField : 'text',//這個地方也需要注意一下,這個是告訴源碼tree用json數據裏面的什麼字段來顯示,我測試出來是隻能寫'text'纔有效果 fieldLabel : '移動到的部門', forceSelection : true,// 只能選擇下拉框裏面的內容 editable : false,// 不能編輯 store : deptSt //這個store必須是在controller裏面動態創建出來的,如果用引入controller時加載的那種store會報錯 }
配置跟combobox差不多哦,需要注意的地方就是displayField和store的字段的配置,其他都沒有什麼大問題
在controller裏面動態創建treeStore的方法:
createTreeSt : function(url) { var store = Ext.create('Ext.data.TreeStore', { proxy : { type : 'ajax', url : url }, // 設置根節點 root : { text : '', id : 'root' } }); return store; }
這樣效果就出來了,treePicker.js在extjs4的包裏面就有