//我还没学tree,但急着用,哪位帮帮呀 
//这个panel运行正常,按这个格式把下拉树加到最后 (下拉树在单独的html文件运行也正常)
//我简单的把下拉树加进去,xtype取'combo'没成功,哪位大侠指点一下
Morik.Office.StudentglPanel= function(config) {
Morik.Office.StudentglPanel.superclass.constructor.call(this, config);var thisServlet="student.myaction";
var pagesize=3;
var stuwinTitle='学生';var StudentFormPanel = function() {/**$$$$$ */
this.idTextField = {
// xtype : 'hidden',
xtype : 'textfield',
fieldLabel : "序号",
readOnly : true,
name : "id"
};
this.nameTextField = {
xtype : 'textfield',
fieldLabel : "姓名",
allowBlank : false,
maxLength:10,
minLength:1,
name : "name"
};
this.ageTextField = {
xtype : 'numberfield',
fieldLabel : "年龄",
allowBlank : false,
name : "age"
};StudentFormPanel.superclass.constructor.call(this, {
bodyStyle : 'padding:5px 5px 0',
frame : true,
reader : new Ext.data.JsonReader( {
root : 'list',
successProperty : 'success',
totalProperty : 'totalSize',
id : 'id'
}, ['id', 'name', 'age']),/**$$$$$ */
items : [this.idTextField, this.nameTextField, this.ageTextField]
});
}
Ext.extend(StudentFormPanel, Ext.form.FormPanel, {
loadData : function(id) {
var url = thisServlet + '?method=edit&id=' + id;/**$$$$$ */
this.getForm().load( {
url : url,
waitMsg : 'Loading',
failure : function(form, action) {
var json = action.response.responseText;
var o = eval("(" + json + ")");
Ext.MessageBox.show( {
title : 'Error',
msg : o.message,
buttons : Ext.MessageBox.OK,
icon : Ext.MessageBox.ERROR
});
}
});
}
});
Ext.extend(Morik.Office.StudentglPanel, Ext.Panel, {});/**$$$$$ *///下拉树在单独的html文件运行也正常,
<html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=gbk">
  <title>05.tree</title>
  <link rel="stylesheet" type="text/css" href="../extjs/resources/css/ext-all.css" />
  <script type="text/javascript" src="../extjs/adapter/ext/ext-base.js"></script>
  <script type="text/javascript" src="../extjs/ext-all.js"></script>
  <script type="text/javascript" src="extjs/localXHR.js"></script>
  <style type="text/css">
.big {
  font-weight: bold;
}
  </style>
  <script type="text/javascript">
Ext.onReady(function(){
// 下拉框树
var comboxWithTree = new Ext.form.ComboBox({
width:200,
fieldLabel: '<b>所在地区</b>', 
store: new Ext.data.SimpleStore({fields:[],data:[[]]}), 
mode: 'local',
//minHeight:100, 
resizable:true,
triggerAction:'all', 
tpl: '<tpl for="."><div id="tree1"></div></tpl>',
displayField: 'key',
valueField: 'value',
emptyText: '请选择...'
});  var tree = new Ext.tree.TreePanel({ 
  height:150, 
//el:'tree-div',  
loader: new Ext.tree.TreeLoader({dataUrl:'../tree.myaction?pid=23010000'})
  });
  var root = new Ext.tree.AsyncTreeNode({  
  text: 'harbin',  
  draggable:false,  
  id:'23010000'  
  });  
  tree.setRootNode(root);  
  //根据点击的节点加载该节点下的数据,点击哪个节点就加载哪个节点的数据  
  tree.on('beforeload',function(node){ 
  if(node.id != '23010000'){  
  tree.loader.dataUrl = '../tree.myaction?pid='+node.id;  
  }  
  });  /* comboxWithTree.on('expand',function() {
tree.render('tree1');
});*/
comboxWithTree.render(comboxtree);//监听下拉树的节点单击事件
tree.on('click', function(node){ 
comboxWithTree.setValue(node.text); 
//Ext.getCmp("menuForm").findById('parentMenuId').setValue(node.attributes.parentMenuId) 
comboxWithTree.collapse();
}); 
//监听下拉框的下拉展开事件
comboxWithTree.on('expand',function(){ 
//将UI树挂到treeDiv容器
tree.render('tree1');
tree.root.expand(); 
});  });
   
  </script>
  </head>
  <body>
  <script type="text/javascript" src="../examples.js"></script>
  <div id="comboxtree" ></div>
  </body>
</html>  

解决方案 »

  1.   

    给你参考
    name:"DWMC",
                            fieldLabel:"单位名称",
    //////                         allowBlank:false,
                                            blankText:"单位名称不允许为空",
                            xtype:"combotree",
                            //传入后台真实值value field /value
                //         hiddenName:"guestsex",
    //                                     emptyText:"请选择单位名称",
                                        anchor:"90%",
                                        height:200 ,
                            readOnly:true,
                            tree : { 
                                                xtype:'treepanel',  
                                                loader:new Ext.tree.TreeLoader({
                                                                    url:"DATA/SdlQuexianGl/GetCQDW.aspx",
                                                                    listeners:{
                                                                        "beforeload":function(treeloader,node)
                                                                        {
                                                                            treeloader.baseParams={
                                                                            id:node.id,
                                                                            method:'POST'
                                                                            };
                                                                        }
                                                                    }
                                                                }),
                                                 root : new Ext.tree.AsyncTreeNode({id:-1}) 
                                                    }, 
                                                rootVisible:false    ,
                                                selectNodeModel:'all' ,
                                                listeners : {   
                                                                   "select" : function(node){ 
                                                                       } 
                                                                   }