`
WChao226
  • 浏览: 28084 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

ext实例二(ext4.2点击左侧树,右侧tabPanel显示iFrame)

阅读更多
如果我的博文能帮到你,我感到非常荣幸。能力所限,对于我所写的内容如有不详不对,你们能给一些意见的话我将非常感谢。以后我会将我在工作中学到的一些知识,尽量整理出来给大家分享。 你们的意见是我的动力

以上篇文章的效果图和代码为例讲解。
var treeStore : 是创建的用于显示的数据,提供给leftTree使用
var leftTree  : 是创建的左侧树容器(其中listeners为监听)

itemclick: function(view, rcd, item, idx, event, eOpts)
单击事件--代码功能:当该iFrame的tab对象不存在,创建一个新的iFrame,如果已创建了,那么直接切换显示(不重新访问url)。tab = Ext.getCmp("容器对象id值");
panelCenter.setActiveTab(tab);//显示该iFrame的tab;
//panelCenter.setActiveTab(0);通过已打开tab的位置显示,0表示第一个tab
itemclick: function(view, rcd, item, idx, event, eOpts){
	       	var dirid = rcd.raw.id; //节点id
	       	var dirleaf = rcd.raw.leaf; //节点leaf
		var tab = Ext.getCmp("tab_"+dirid);
	       	if(!tab && dirleaf){
	       		//newIframe
	       		createIframe(rcd);
	       	}else if(!dirleaf){
	       		return;
	       	}
		tab = Ext.getCmp("tab_"+dirid);
		panelCenter.setActiveTab(tab);
	      }

双击事件---代码功能:如果该iFrame的tab对象不存在,就新创建一个;如果已存在,则切换到这个tab,并重新请求一次链接url
itemdblclick: function(view, rcd, item, idx, event, eOpts){
	       	//alert("dbclick Body");
	       	var dirid = rcd.raw.id; //节点id
	       	var dirleaf = rcd.raw.leaf; //节点leaf
			var tab = Ext.getCmp("tab_"+dirid);
	       	if(!tab && dirleaf){
				// 添加新的tab,如果tab已经存在,则将其设置为当前可见tab
				createIframe(rcd);
			}else{
				tab.show();
			tab.load(tab.src);//重新加载该url地址
				tab = Ext.getCmp("tab_"+dirid);
				panelCenter.setActiveTab(tab);
			}
	      }

右击事件---代码功能:在这里可以做右键菜单,等事情
itemcontextmenu: function(view, rcd, item, idx, event, eOpts){
	    	  eOpts.preventDefault();//阻止浏览器右键
	    	  alert("右键点击事件");
	      }



左侧树完整代码:
var treeStore = Ext.create('Ext.data.TreeStore', {
  root: {
  	id: "0",
  	text: "根节点",
    expanded: true,
    children: [{id:"1",text: "业务模块", expanded: true, children: [   
            {id:"11",text: "应用管理", linkUrl: "general/appExec/go_main", leaf: true},   
            {id:"12",text: "产品管理", linkUrl: "general/appNormal/go_main", leaf: true},   
            {id:"13",text: "客户管理", linkUrl: "general/appTree/go_main", leaf: true},   
            {id:"14",text: "银行卡管理", linkUrl: "general/appTree/go_main", leaf: true}   
        ]},   
        {id:"2",text: "系统模块", expanded: true, children: [   
            {id:"21",text: "数据备份", linkUrl: "general/appNormal/gView/usermy?area_id=2",leaf: true},   
            {id:"22",text: "系统监控", linkUrl: "general/appTree/gView/treeuser?id=0",leaf: true}   
        ]}   
    ]}   
});   

//左边树
var leftTree = Ext.create('Ext.tree.Panel', {
	title: "业务模块",
  	store: treeStore,
  	border: false,
  	rootVisible: true,
  	listeners: {
	  	itemclick: function(view, rcd, item, idx, event, eOpts){
	       	var dirid = rcd.raw.id; //节点id
	       	var dirtext = rcd.raw.text; //节点text
	       	var dirleaf = rcd.raw.leaf; //节点leaf
	       	var dirurl = rcd.raw.linkUrl; //节点url
			var tab = Ext.getCmp("tab_"+dirid);
	       	if(!tab && dirleaf){
	       		//newIframe
	       		createIframe(rcd);
	       	}else if(!dirleaf){
	       		return;
	       	}
			tab = Ext.getCmp("tab_"+dirid);
			panelCenter.setActiveTab(tab);
	      },
        itemdblclick: function(view, rcd, item, idx, event, eOpts){
	       	//alert("dbclick Body");
	       	var dirid = rcd.raw.id; //节点id
	       	var dirleaf = rcd.raw.leaf; //节点leaf
			var tab = Ext.getCmp("tab_"+dirid);
	       	if(!tab && dirleaf){
				// 添加新的tab,如果tab已经存在,则将其设置为当前可见tab
				createIframe(rcd);
			}else{
				tab.show();
				tab.load(tab.src);
				tab = Ext.getCmp("tab_"+dirid);
				panelCenter.setActiveTab(tab);
			}
	      },
	      itemcontextmenu: function(view, rcd, item, idx, event, eOpts){
	    	  eOpts.preventDefault();
	    	  alert(12333);
	      }
	}
});
//左边
var menu=[leftTree,{title:"系统管理",html:"<ul style='list-style-type:none'><li>sssss</li></ul>"},{title:"配置管理"}]; 
var panelWest = new Ext.Panel({
	title: "菜单栏目",
	width:	250,
	maxWidth: 300,
	collapsible: true,//是否可以折叠
	region: "west",
	layout: "accordion",
	items: menu,//左侧的容器数组
	split: true //是否可以分开
});
分享到:
评论

相关推荐

    extjs4.2.1 tabPanel刷新及关闭标签

    ### ExtJS 4.2.1 TabPanel 刷新与关闭标签功能详解 #### TabPanel 组件简介 在ExtJS框架中,`TabPanel`组件是一个非常实用且强大的UI控件,它允许用户在一个界面上组织多个相关的视图或面板,并通过标签页的形式...

    1000个jquery插件说明(doc文档)

    5. **TabPanel (模仿EXT的Tab选项卡)**:TabPanel插件用于实现类似EXT库的选项卡组件,可以轻松创建带有多个面板的界面,每个面板代表一个选项卡。它提供了丰富的配置选项,如渲染位置、尺寸、边框显示、默认激活的...

    jquery资料 大全

    在页面中引入jQuery.js、TabPanel.js、Fader.js和TabPanel.css,然后创建一个新的TabPanel实例,配置其渲染位置、尺寸、初始激活项和选项卡元素,如下所示: ```javascript new TabPanel({ renderTo: 'tabs', ...

    JAVA编程规范

    `parent.Ext` 和 `top.Ext` 分别代表了 iframe 外部的 Ext 库实例,通过它们可以访问到外部环境中的 Ext 组件。 3. **函数定义** ```javascript function() { // 函数体 } ``` 在 JavaScript 中,所有的...

    1000多个jquery常用插件.pdf

    2. **实例化TabPanel**:通过new TabPanel({})方式初始化选项卡组件,并设置相应属性。 **示例代码:** ```javascript new TabPanel({ renderTo: 'tabs', width: '100%', height: '500px', active: 0, items: ...

    Extjs中TabPane如何嵌套在其他网页中实现思路及代码

    var tabPanel = new Ext.TabPanel({ activeTab: 0, // 激活第一个Tab region: 'center', // 将TabPanel放置在中央区域 layoutOnTabChange: false, // 是否在切换Tab时重新布局 deferredRender: true, // 延迟...

Global site tag (gtag.js) - Google Analytics