Extjs中通过Tree加载右侧TabPanel具体实现


Posted in Javascript onMay 05, 2013

最近在做一个物流管理的项目,公司必须要求用Extjs4.1来做界面,因为以前一直也没有接触过所以开发的过程中遇到了很多的困难。同时Extjs4.1的资料在网上也相对来说较少。好了,不说废话上代码:
1.左侧的功能树

Ext.define("AM.view.SystemTree", { 
extend : 'Ext.tree.Panel', 
alias : 'widget.systemTree', 
rootVisible : false,// 不展示ROOT 
displayField : 'text', 
// title:'物流运输系统', 
viewConfig : { // 具有拖拽功能 
plugins : { 
ptype : 'treeviewdragdrop' 
}, 
listeners : { // 拖拽 
drop : function(node, data, overModel, dropPosition, options) { 
alert("把: " + data.records[0].get('text') + " 移动到: " 
+ overModel.get('text')); 
} 
} 
}, 
dockedItems : [ { 
xtype : 'toolbar', 
items : [ { 
xtype : 'button', 
id : 'allopen', 
icon : 'resources/img/lock_open.png', 
text : '展开全部' 
}, { 
xtype : 'button', 
id : 'allclose', 
icon : 'resources/img/lock.png', 
text : '收起全部' 
} ] 
} ], 
root : { 
text : 'root', 
leaf : false, 
id : '0', 
children : [ { 
text : '运输管理', 
checked : false, // 显示被选中 
leaf : false, // 是否是叶子节点 
icon : 'resources/img/folder_user.png', 
id : '01', 
children : [ { 
text : '车辆信息管理', 
checked : false, 
icon : 'resources/img/report_edit.png', 
leaf : true, 
id : 'vehiclelist',//主要的要点在这里,这里的id要指定为你要打开的那个视图的别名 
}] 
}] 
} 
});

要点介绍
•tree一定不要忘记添加别名alias
•设置树形结构的子节点的id值为你需要在右侧显示的view的别名alias(重要) ------可参考下方的view代码
2.需要打开的对应的view
Ext.define("AM.view.transportation.VehicleList",{ 
extend:'Ext.grid.Panel', 
alias:'widget.vehiclelist', //这里一定要设置别名 
id:'vehiclelist', 
store:'VehicleStore', 


......中间代码省略 
columns : [ 
{text:'车辆编号',dataIndex:'vehicleNo', 
field:{ 
xtype:'textfield', 
allowBlank:false 
} 
}, 
{text:'车辆描述',xtype:'templatecolumn', 
tpl:'车辆的编号为{vehicleNo} 所在地区为{vehicleArea}' 
} 
], 
initComponent:function(){ 
this.callParent(arguments); 
} 
});

3.建立一个右侧的TabPanel
Ext.define('AM.view.TabPanel',{ //主页面的tab面板 
extend: 'Ext.tab.Panel', 
alias:'widget.tabpanel', 
closeAction: 'destroy', 
defaults :{ 
bodyPadding: 10 
}, 
items: [{ 
title: '主页', 
autoLoad:'content.jsp'
//只有一个基本的panel 
}], 
});

4.设置点击tree的触发事件
'systemTree':{ 
itemclick:function(tree,record,item,index,e,options){ 
var tabs = tree.ownerCt.ownerCt.ownerCt 
.child('#center-grid').child("#tabpanel"); 
//获取当前点击的节点 
var treeNode=record.raw; 
var id = treeNode.id; 
var text=treeNode.text; 
//获取点击的树节点相同的tab标签 
var tab = tabs.getComponent(id); 
if(!tab){//如果不存在 
tabs.add({//用点击树的节点的ID、text新建一个tab 
id:id, 
closable: true, 
title:text, 
iconCls:id, 
xtype:id//将tree设置好的id对应的TabPanel中去,相当与把对应的view填充到TabPanel中 
}).show(); 
}else{//如果存在 
tabs.setActiveTab(tab);//Active 
} 
} 
},

结果上效果图:
Extjs中通过Tree加载右侧TabPanel具体实现
总结:Extjs做出来的效果确实很炫,但是学起来也有一定的难度,特别是比较新的版本,网上很难找到什么好的教程。还好我们有API,可以多对着API中的例子进行练习,这样掌握起来也很快。最近才接触Extjs,希望各位大神不要吐槽!
Javascript 相关文章推荐
12款经典的白富美型—jquery图片轮播插件—前端开发必备
Jan 08 Javascript
setTimeout内不支持jquery的选择器的解决方案
Apr 28 Javascript
js实现仿Discuz文本框弹出层效果
Aug 13 Javascript
使用jQuery获取data-的自定义属性
Nov 10 Javascript
微信小程序  action-sheet详解及实例代码
Nov 09 Javascript
js原生实现FastClick事件的实例
Nov 20 Javascript
详解angular ui-grid之过滤器设置
Jun 07 Javascript
你可能不知道的JSON.stringify()详解
Aug 17 Javascript
jQuery实现的电子时钟效果完整示例
Apr 28 jQuery
ES6基础之解构赋值(destructuring assignment)
Feb 21 Javascript
js纯前端实现腾讯cos文件上传功能的示例代码
May 14 Javascript
JS实现transform实现扇子效果
Jan 17 Javascript
jquery高效反选具体实现
May 05 #Javascript
Jquery为a标签的href赋值实现代码
May 03 #Javascript
5秒后跳转效果(setInterval/SetTimeOut)
May 03 #Javascript
如何用JavaScript动态呼叫函数(两种方式)
May 03 #Javascript
jquery移动listbox的值原理及代码
May 03 #Javascript
使用Java实现简单的server/client回显功能的方法介绍
May 03 #Javascript
用原生JavaScript实现jQuery的$.getJSON的解决方法
May 03 #Javascript
You might like
根德Grundig S400/S500/S700电路分析
2021/03/02 无线电
php allow_url_include的应用和解释
2010/04/22 PHP
探讨如何在PHP开启gzip页面压缩实例
2013/06/09 PHP
关于Zend Studio 配色方案插件的介绍
2013/06/24 PHP
php数组转换js数组操作及json_encode的用法详解
2013/10/26 PHP
thinkphp四种url访问方式详解
2014/11/28 PHP
使用PHP处理数据库数据如何将数据返回客户端并显示当前状态
2016/02/16 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
IE本地存储userdata的一个bug说明
2010/07/01 Javascript
javascript开发技术大全-第3章 js数据类型
2011/07/03 Javascript
Jquery刷新页面背景图片随机变换的实现方法
2013/03/15 Javascript
设为首页和收藏的Javascript代码(亲测兼容IE,Firefox,chrome等浏览器)
2013/11/18 Javascript
如何在JavaScript中实现私有属性的写类方式(二)
2013/12/04 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
2014/10/17 Javascript
JavaScript中用getDate()方法返回指定日期的教程
2015/06/09 Javascript
jQuery实现固定在网页顶部的菜单效果代码
2015/09/02 Javascript
3kb jQuery代码搞定各种树形选择的实现方法
2016/06/10 Javascript
浅谈JS中json数据的处理
2016/06/30 Javascript
基于VUE选择上传图片并页面显示(图片可删除)
2017/05/25 Javascript
vue中页面跳转拦截器的实现方法
2017/08/23 Javascript
vue 在单页面应用里使用二级套嵌路由
2020/12/19 Vue.js
python3写爬取B站视频弹幕功能
2017/12/22 Python
Python实现简易版的Web服务器(推荐)
2018/01/29 Python
python3爬取淘宝信息代码分析
2018/02/10 Python
Flask框架信号用法实例分析
2018/07/24 Python
记录Python脚本的运行日志的方法
2019/06/05 Python
django 连接数据库 sqlite的例子
2019/08/14 Python
pytorch 加载(.pth)格式的模型实例
2019/08/20 Python
宝拉珍选澳大利亚官方购物网站:Paula’s Choice澳大利亚
2016/09/13 全球购物
Rag & Bone官网:瑞格布恩高级成衣
2018/04/19 全球购物
英国最大的婴儿监视器网上商店:Baby Monitors Direct
2018/04/24 全球购物
运动会稿件50字
2014/02/17 职场文书
安全生产一岗双责责任书
2014/07/28 职场文书
委托书格式
2014/08/01 职场文书
乡镇个人对照检查材料
2014/08/22 职场文书
创业计划书之外语培训班
2019/11/02 职场文书