`
qq1988627
  • 浏览: 107300 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

extjs tabpanel动态添加panel

阅读更多
index =  Ext.extend(Ext.Viewport,{
        center : new Ext.TabPanel({
		            id : 'mainview',
		            region : 'center',
		            activeTab : 0,
                    width : 600,
		            height : 250,
                    minTabWidth: 115,
                    tabWidth:135,
                    enableTabScroll:true,
		            split : true,
                    layoutOnTabChange:true,
                    tabPosition : 'top',
                    resizeTabs:true,
                    defaults : {autoScroll:true},
		            plugins : new Ext.ux.TabCloseMenu(),
		            items :{
		                id : 'start-panel',
					    title : 'MainView',
                        iconCls : 'tabs',
					    layout : 'fit',
					    bodyStyle : 'padding:25px',
					    html : '<img src="../images/bg.jpg"/>'
		            }
        }),
        constructor : function(){
            //var clock = new Ext.Toolbar.TextItem('');
            index.superclass.constructor.call(this,{
                layout : 'border',
                items : [{
                   region : 'north',
                   xtype : 'panel',
                   height : 25,
                   layout : 'column',
                   border : false,
                   items : [{
                        columnWidth : 1,
                        border : false,
                        layout : 'fit',
                        items : [{
                            xtype : 'panel',
                            id : 'logo-header',
                            border : false,
                            tbar : [
                                {
                                    text : currentUser
                                },{
                                    text : new Date().format('Y年m月d日')
                                },'->',{
                                    text:'注销'
                                    ,iconCls:'logout'
                                    ,handler:function(){
                                        Ext.Msg.show({
                                           title:'注销系统',
                                           msg: '提示:注销系统前请注意保存数据,确定要注销吗?',
                                           buttons: Ext.Msg.YESNO,
                                           fn: function(btn){
                                                if(btn=='yes'){
                                                    Ext.Ajax.request({
                                                       url : 'logout.action',
			                                           success : function() {
			                                                location = '../main/index.jsp';
			                                            },
			                                            failure : function() {
			                                                Ext.Msg.show({
			                                                    title : '错误提示',
			                                                    msg : '退出系统失败!',
			                                                    icon : Ext.Msg.ERROR,
			                                                    buttons : Ext.Msg.OK
			                                                });
			                                            }
                                                    });
                                                }
                                           }
                                        });
                                    }
                                }
                            ]
                        }]
                   }]
                },{
                    region : 'west',
                    xtype : 'panel',
                    layout : 'accordion',
                    title : '计划排产管理系统',
                    split : true,
                    minSize : 200,
                    maxSize : 250,
                    //margins : '2 0 5 5',
                    collapsible : true,
                    collapseMode:'mini',
                    width : 200,
                    layoutConfig : {
                        animate : true
                    },
                    listeners : {
                        'expand' :{
                          fn : this.onExpandPanel,
                          scope : this
                        },
                        'collapse' :{
                            fn : this.onCollapsePanel,
                            scope : this
                        }
                    },
                    items : [{
                        title : '导航栏',
                        iconCls : 'icon-nav',
                        xtype : 'treepanel',
                        autoScroll : true,
                        border : false,
                        id : 'treepanel',
                        tools : [{
                               id : 'refresh',
                               handler : this.onRefreshTreeNodes,
                               scope : this
                        },{
	                        id:'expanded',
	                        tooltip:'展开',
	                        handler:function(){
	                            Ext.getCmp('treepanel').expandAll();
	                        }
                    }],
                        loader : new Ext.tree.JsonPluginTreeLoader({
                                    url : 'findTree.action'
                                }),
                        root : new Ext.tree.AsyncTreeNode({text : '菜单', expanded:true}),
                        listeners : {
                            'click' : {
                                fn :this.onTreeNodeClick,
                                scope : this
                            },
                            'afterrender':{
                                fn : this.onExpandAll,
                                scope : this
                            }
                        }
                    }]
                },this.center]
            })
        },
        addTab : function(name,id,css,link){
            var tabId = 'tab_'+id;
            var tabTitle = name;
            var tabLink = link;
            var centerPanel = Ext.getCmp('mainview');
            var tab =centerPanel.getComponent(tabId);
            var subMainId = 'tab_'+id+'_main';
            if(!tab){
                var newTab = centerPanel.add(new Ext.Panel({
                    id : tabId,
                    title : tabTitle,
                    iconCls : 'tabs',
                    border : false,
                    closable : true,
                    layout : 'fit',
                    listeners : {
                        activate : this.onActiveTabSize,
                        scope : this
                    }
                }));
                centerPanel.setActiveTab(newTab);
                newTab.load({
                    url : tabLink,
                    method : 'post',
                    params : {
                        subMainId : subMainId
                    },
                    scope : this,
                    discardUrl : true,
                    nocache : true, // 不缓存
                    text : '加载中,请稍候...',
                    timeout : 3000,
                    scripts : true
                });
            }else{
                centerPanel.setActiveTab(tab);
            }
        },
        onActiveTabSize : function(){
            var w = Ext.getCmp('mainview').getActiveTab().getInnerWidth();
            var h = Ext.getCmp('mainview').getActiveTab().getInnerHeight();
            var Atab = Ext.getCmp('mainview').getActiveTab().id;
            var submain = Ext.getCmp(Atab+'_main');
            if(submain){
                submain.setWidth(w);
                submain.setHeight(h);
            }
        },
        onRefreshTreeNodes : function(){
            Ext.getCmp('treepanel').root.reload(); 
        },
        onTreeNodeClick : function(_node,_e){
            if(_node.isLeaf()){
                var _nodeText = _node.attributes.text;
                var _nodeLink = _node.attributes.url;
                var _nodeId = _node.attributes.id;
                this.addTab(_nodeText,_nodeId,'_css',_nodeLink)
            }
        },
        onExpandPanel : function(_nowCmp){
            this.onActiveTabSize();
        },
        onCollapsePanel : function(_nowCmp){
            this.onActiveTabSize();
        },
        onExpandAll : function(){
            Ext.getCmp('treepanel').expandAll();
        }
})
 
  • 大小: 45.1 KB
分享到:
评论

相关推荐

    extjs4.x tabpanel 动态加载panel和html例子

    通过以上步骤,我们能够实现EXTJS 4.x中tabpanel的动态加载功能。这不仅可以提高应用性能,还能使用户界面更加灵活,适应不同的场景需求。记得在实际项目中根据具体需求调整和优化代码,以获得最佳效果。

    ExtJS TabPanel 标签操作

    接下来,我们讨论如何动态添加和删除标签页。添加新的标签页可以通过`add()`方法实现,如下所示: ```javascript var newTab = { title: '新标签', html: '这是新添加的标签页内容' }; tabpanel.add(newTab).show...

    extjs4.2.1 tabPanel刷新及关闭标签

    如果标签页本身并没有定义`loader`对象,则可以通过动态创建的方式为其添加一个`TreeLoader`实例,以实现数据的加载和刷新。 #### 关闭当前标签页 关闭当前标签页是`TabPanel`常见的需求之一,可以通过如下方式...

    ExtJS tabPanel实例

    你可以通过 `add()` 方法动态添加新的标签页,或者使用 `remove()` 方法移除已存在的标签页。例如: ```javascript // 添加新标签页 tabPanel.add({ title: '角色管理', // 可能对应于roleManager.js中的内容 })...

    Extjs4.2 设置tabpanel当前活动页签的样式

    Extjs4.2 设置tabpanel当前活动页签的样式 Extjs是一个流行的JavaScript框架,用于构建丰富互联网应用程序(RIA)。其中,tabpanel是Extjs中一个常用的控件,用于显示多个面板。设置tabpanel当前活动页签的样式是...

    ExtJS TabPanel beforeremove beforeclose使用说明

    在ExtJS中,TabPanel是常用的组件,用于展示多个面板(Panel)并提供标签页切换功能。当用户尝试关闭TabPanel中的某个Panel时,我们可能需要执行一些验证或确认操作,例如弹出对话框询问用户是否真的要关闭当前页面...

    Extjs4.2 根据不同的数值设置tabpanel行的背景颜色

    ### Extjs4.2 根据不同的数值设置 TabPanel 行的背景颜色 #### 一、引言 在Web应用程序开发中,为了提高用户体验并使数据呈现更加直观易懂,开发者常常需要根据数据的不同状态来调整UI元素的样式。例如,在使用...

    extjs tab panel

    此外,Tab Panel还支持动态添加和移除Tab,这对于动态内容加载或用户交互场景非常有用。你可以使用`add`方法添加新的Tab,`remove`方法移除已有的Tab。 源码分析可能是博客文章的重点,它可能涵盖了ExtJS Tab Panel...

    ExtJs GridPanel双击事件获得双击的行

    在ExtJs中,我们可以使用`viewConfig`配置项中的`selType`来定义选择模型,通常是'checkboxmodel',以便在每行前添加复选框。然后通过`selModel`配置项设置双击时选中复选框的行为。同时,我们可以监听`itemdblclick...

    extjs tabpanel限制选项卡数量实现思路及代码

    代码如下: var tabIndex = ‘shouye’;... /** * 向TabPanel组件中添加窗口或激活已经存在的窗口 * 并将指定资源加载进窗口 * @param node : 传入的Node节点 */ var loadPanel = function(node) { var

    Ext中的tabpanel关闭后再打开不显示的问题

    在Ext中,可以通过`addPanel`方法向`TabPanel`中添加面板,如示例代码所示: ```javascript var payCaseTabs = new Ext.TabPanel({ // ... items: [{ title: 'Tab3', id: 'activeTest', contentEl: 'test', ...

    Extjs5.0从入门到实战开发信息管理系统(Extjs基础、Extjs5新特性、Spring、Spring mvc)

    Extjs5.0从入门到实战... panel, tabpanel,Tree, grid, form表单(及其验证方法),数据组件: store,model等,讲解了动态菜单、单表和子父表模块等的开发方法以及后端spring,spring mvc,mybatis的整合和数据打通等。

    ExtJS效果Tabs形式

    创建TabPanel的基本步骤包括创建一个新的Ext.container.TabPanel实例,然后添加多个Ext.panel.Panel子组件,每个子组件代表一个标签页。例如: ```javascript var tabPanel = Ext.create('Ext.tab.Panel', { ...

    extJs 2.1学习笔记

    18. extJs 2.0学习笔记(Ext.Panel终结篇) 40 19. extJs 2.0学习笔记(事件注册总结篇) 45 20. extJs 2.0学习笔记(Ext.Panel篇一) 48 21. extJs 2.0学习笔记(Ext.Panel篇二) 50 22. extJs 2.0学习笔记(Ext.Panel篇三) ...

    学习ExtJS Panel常用方法

    这在动态调整 Panel 大小或添加/删除子组件后尤为有用。 - 示例代码: ```javascript var panel = new Ext.Panel(); panel.add(new Ext.Button({ text: '按钮' })); panel.layout.layout(); // 强制重新布局 ...

    TabPanel布局

    此外,例子中还展示了如何创建和添加TreeNode到TreePanel,虽然这部分内容并非直接与TabPanel布局相关,但它是ExtJS中构建树形结构数据的常见操作。 总的来说,这个例子演示了如何使用ExtJS创建一个复杂的多区域...

    ext tab

    4. **动态添加和删除标签**:TabPanel支持在运行时动态添加或移除标签页,这对于构建可扩展的应用非常有用。 5. **自定义Tab样式**:EXTJS允许通过CSS样式对Tab进行定制,包括字体、颜色、背景等,以满足不同的设计...

Global site tag (gtag.js) - Google Analytics