extjs 如何通过点击a.jsp内的树,来控制其中嵌套的b.jsp中tabpanel的activeTab选中0或者1、2、3???

2024-12-23 04:20:29
推荐回答(2个)
回答1:

 
    
        
        
        
        
     
                  
    Ext.onReady(function() {
    var windowWidth = 1000;
    var windowHeight = 500;
    var tree = new Ext.tree.TreePanel( {
        region : "west",
        width : windowWidth / 6,
        height : windowHeight,
        title : "test",
        root : new Ext.tree.AsyncTreeNode( {
            text : "all",
            children : [ {
                text : "aaa",
                leaf : true
            }, {
                text : "bbb",
                leaf : true
            }, {
                text : "ccc",
                leaf : true
            } ]
        }),
        autoScroll : true,
        animate : true,
        lines : false,
        collapseMode : "mini",
        collapsible : true,
        margins : '0 0 2 2',
        cmargins : '0 5 2 2',
        layoutConfig : {
            animate : true
        },
        split : true,
        border : true,
        minSize : windowWidth / 6,
        maxSize : windowWidth / 6,
        listeners : {
            click : function(n) {
                if (n.leaf) {
                    showTab_addPanel( {
                        id : n.id,
                        name : n.text
                    });
                }
            }
        }
    });
    function showTab_addPanel(obj) {
        var objId = obj.id;
        var name = obj.name;
        var itemPanel = tabPanel.getItem(objId);
        if (itemPanel) {
            tabPanel.setActiveTab(itemPanel);
        } else {
            // 在这里可以写点变量,然后在下面拼接src实现点击动态生成嵌套的页面
        var tb = new Ext.Panel(
            {
                title : name,
                id : objId,
                layout : 'fit',
                items : [ new Ext.Panel(
                        {
                            closable : "true",
                            region : "center",
                            layout : 'fit',
                            frame : true,
                            resizeTabs : true,
                            autoScroll : true,
                            html : ''}) ],
                closable : true,
                listeners : {
                    beforeclose : function(p) {
                        p.setVisible(false);
                    },
                    beforedestroy : function() {
                        return false;
                    }
                }
            });
            tabPanel.add(tb);
            tabPanel.setActiveTab(tb);
        }
    }
    var tabPanel = new Ext.TabPanel(
        {
            region : "center",
            resizeTabs : true,
            items : []
        })
     
    var emPanel = new Ext.Panel( {
        width : windowWidth - 15,
        height : windowHeight - 60,
        layout : "border",
        border : true,
     
        items : [ tabPanel, tree ]
    });
     
    var windowWidth = window.screen.availWidth;
    var style = 'margin-top:150px;margin-left:150px;';
    var el = Ext.get('auto-center').applyStyles(style);
    emPanel.render(el);
});
    
    
    
    

    

 

给你发的就是个html页面,把代码考出来,粘到txt上,然后保存成test.html就行。
然后你就自己把extjs核心包和css改成你那个包所在的路径就行,extjs3.0的。
或者你就直接放ext的那个文件夹同级目录下就行。
或者,你直接粘js代码

 

 html : ''这个位置换成你的b.jsp就行了

回答2:

点击的时候,触发事件在原来有的tabpanel中创建一个tab就行了

相关问答