日期:2014-05-16  浏览次数:20807 次

十万火急,extjs下拉树在IE上出不来!!!
代码如下,在火狐下正常,在IE下点击下拉列表后什么也没有,原因不知,麻烦各位给我看一看哪里的问题
JScript code

var comboxTree = new Ext.form.ComboBox({   
        store:new Ext.data.SimpleStore({fields:[],data:[[]]}),   
        editable:false,   
        mode: 'local', 
        width:100,
        listWidth:220,
        triggerAction:'all',
        tpl: "<div style='height:300px'><div id='thistree'></div></div>",   
        selectedClass:'',   
        onSelect:Ext.emptyFn   
    });   
    var tree = new Ext.tree.TreePanel({  
         root:new Ext.tree.AsyncTreeNode({text: '部门'}),        
         width:220,
         border:false,   
         autoScroll:true,
         autoHeight:true,
         rootVisible:false, 
         loader: new Ext.tree.TreeLoader({dataUrl:'loadDepartTree?node=0201'})
          
      });   
      tree.on('click',function(node){   
          comboxTree.setValue(node.id);   
          comboxTree.setRawValue(node.text); v   
          comboxTree.collapse();   
      });   
    comboxTree.on('expand',function(){   
        tree.render('thistree');   
        tree.expandAll();
        comboxTree.ownerCt.doLayout(true);
      });   
   
   var form = new Ext.form.FormPanel({
        region:'center',                        
        items:[
               
                   comboxTree
               ]                             
                                     
                                     });
    var view= new Ext.Viewport({
                //hidden:true,
                layout:'border',
                items:[
                         
                         form
                         
                       ],
                renderTo:Ext.getBody()                       
           });    
    view.show();        





------解决方案--------------------
JScript code

Ext.ux.ComboBoxTree = Ext.extend(Ext.form.ComboBox, {
    tree: null,
    SelectAll: true,
    displayText: 'Text',
    constructor: function (config) {
        var $this = this;
        var rid = Math.floor(Math.random() * 1000);
        this.tree = new Ext.tree.TreePanel({
            loader: config.loader,
            border: false,
            root: config.root,
            rootVisible: config.rootVisible,
            autoScroll: false,
            listeners: {
                click: function (node, e) {
                    if ($this.SelectAll) {
                        if ($this.displayText == 'Text')
                            $this.setValue(node.attributes.name, node.attributes.id);
                        else if ($this.displayText == 'Name')
                            $this.setValue(node.getPath('name'), node.attributes.id);
                        $this.collapse();
                    }
                    else if (node.attributes.leaf) {
                        if ($this.displayText == 'Text')
                            $this.setValue(node.attributes.name, node.attributes.id);
                        else if ($this.displayText == 'Name')
                            $this.setValue(node.getPath('name'), node.attributes.id);
                        $this.collapse();
                    }
                }
            }
        });
        config = Ext.apply({
            editable: false,
            triggerAction: 'all',
            autoScroll: false,
            typeAhead: true,
            tpl: "<div style='height:200px'><div id='_" + rid + "'></div></div>",
            listeners: {
                expand: function () {
                    this.tree.render('_' + rid);
                    //tree.expandAll();
                }
            }
        }, config);
        Ext.ux.ComboBoxTree.superclass.constructor.call(this, config);
    }
})
///贴一段我的代码