EXTJS 动态生成下来树形框
    本例中的Ext.ux.ComboBoxTree对Ext.form.ComboBox控件进行了简单的扩展,将Ext.tree.TreePanel整合进来,以下拉树的形式显示出来。
扩展的功能点:
一、支持form的提交
二、提供属性selectNodeModel,指选择树结点的模式,提供四种模式,分别是
    1. all:所有结点都可选中
    2. exceptRoot:除根结点,其它结点都可选(默认)
    3. folder:只有目录(非叶子和非根结点)可选
    4. leaf:只有叶子结点可选
使用方法:
Js代码 
var comboBoxTree = new Ext.ux.ComboBoxTree({   
      renderTo : 'comboBoxTree',   
      width : 250,   
      //listWidth:300, 这是设置下拉框的宽度,默认和comBoxTree的宽度相等  
      tree : new Ext.tree.TreePanel({   
            bbar: ['名称:',{xtype:'trigger',width:200,triggerClass:'x-form-search-trigger',}],   
            loader: new Ext.tree.TreeLoader({dataUrl:'getNodes.jsp'}),   
            root : new Ext.tree.AsyncTreeNode({id:'0',text:'根结点'})   
      }),  
      selectNodeModel:'leaf', //只有选叶子时,才设置值  
      listeners:{  
            beforeselect: function(comboxtree,newNode,oldNode){//选择树结点设值之前的事件  
                   //...  
            },  
            select: function(comboxtree,newNode,oldNode){//选择树结点设值之后的事件  
                  //...  
            },  
            afterchange: function(comboxtree,newNode,oldNode){//选择树结点设值之后,并当新值和旧值不相等时的事件  
                  //...  
            }  
      }  
});     
js : 代码二:
{
					columnWidth : .33,
					layout : 'form',
					defaults : {
						anchor : "98%"
					},
					labelAlign : "right",
					labelWidth : 60,
					items : [ {
						fieldLabel : "所属单位",
						xtype : "combotree",
						tree : {
							xtype : 'treepanel',
							bbar : [ '名称:', {
								xtype : 'trigger',
								id : 'searchName',
								width : 200,
								triggerClass : 'x-form-search-trigger',
								onTriggerClick : search
							} ],
							loader : new Ext.tree.TreeLoader( {
								dataUrl : 'deptManAction!getDeptTree.action'
							}),
							root : new Ext.tree.AsyncTreeNode( {
								id : '0',
								text : '根结点'
							})
						},
						//all:所有结点都可选中
						//exceptRoot:除根结点,其它结点都可选(默认)
						//folder:只有目录(非叶子和非根结点)可选
						//leaf:只有叶子结点可选
						selectNodeModel : 'all'
					} ]
				}
按照列布局实现的。