从网上看的资料写了个下拉树。
数据显示正常,但是需要添加手动输入的功能,此时出现了问题:下拉显示正常,手动输入一个值以后,再点击下拉按钮就无法显示出来菜单,哪位大侠遇到过请赐教。
PS:用谷歌审查元素看,没有发现JS错误。
var comboxWithTree = new Ext.form.ComboBox({
store : new Ext.data.SimpleStore({
fields : [],
data : [[]]
}),
id : 'comboxWithTree',
emptyText : '请输入拼音,如北京,输入bj,或从列表选择',
width : 250,
fieldLabel : "请选择",
mode : 'local',
triggerAction : 'all',
selectedClass : '',
enableKeyEvents : true,
onSelect : Ext.emptyFn,
listeners:{
'keyup' : function(){
setNull();
searchText = comboxWithTree.getValue();
}
}
});
var root = new Ext.tree.AsyncTreeNode();
var tree = new Ext.tree.TreePanel({
height : 300,
width : 250,
autoScroll : true,
animate : true,
containerScroll : true,
rootVisible : false,
border : false,
allowUnLeafClick : true,
root : root,
loader : new Ext.tree.TreeLoader({
dataUrl : 'xxxxxxxxxxxxxx',
baseParams : {
//此处不方便展示
}
})
});
comboxWithTree.on('beforeRender', function() {
comboxWithTree.tpl = "<div  id='" + randomid + "' ><div>";
});
comboxWithTree.on('expand', function() {
tree.render("" + randomid + "");
});

解决方案 »

  1.   

    我是参考以下代码实现的
    请大侠们帮我看看 comboxWithTree = new Ext.form.ComboBox({ 
    store:new Ext.data.SimpleStore({fields:[],data:[[]]}), 
    editable:false, 
    width : 150,
    allowBlank : false,
    fieldLabel  : "<font color='red'>*</font>类型",
    mode: 'local', 
    triggerAction:'all',
    selectedClass:'', 
    onSelect:Ext.emptyFn 
    }); 
        var root=new Ext.tree.AsyncTreeNode({expand:true,children:[{text: '软件类型',id:'A'},{text:'服务类型',id:'B'},{text:'解决方案',id:'C'},{text:'硬件',id:'D'}]}) ;
        var tree = new Ext.tree.TreePanel({ 
    //loader:urlloader,
    height:300,
    autoScroll:true,
    animate:true,
    containerScroll:true,
    rootVisible:false,
    border:false, 
    allowUnLeafClick:true,
    root:root}); 
    var dateRandom=new Date();
    var randomid=dateRandom.toString("yyyyMMddhhmmss");
        comboxWithTree.on('beforeRender',function(){ comboxWithTree.tpl="<div  id='"+randomid+"'><div>";})     
    comboxWithTree.on('expand',function(){      
    tree.render(""+randomid+""); 
    }); 

    tree.on('beforeload',function(node){ 
    if(node.id=="A"||node.id=="B"||node.id=="C"||node.id=="D")
    { tree.loader.dataUrl='../getOfferTreeData.action?type='+node.id; 
    autoHegiht=tree.getHeight();                       
    }     
    });
    tree.on('click',function(node,e){
    if (node.isLeaf()) {
    comboxWithTree.setValue(node.text); 
    comboxWithTree.collapse();        
    Ext.getCmp('productTypeNum').setValue(node.id);}

    }
                        
    );
      

  2.   

    经过调试发现,输入文本后再点击下拉按钮,树加载了,应该是 tree.render("" + randomid + "");未生效。
      

  3.   

    大哥用那么神秘吗,可以上下代码吗,LZ求代码啊,我也在弄这个下拉树啊,是EXT4的吗,摆脱代码啊
      

  4.   

    ext3.3可以使用
    http://download.csdn.net/detail/f504501983/4565453