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 相关文章推荐
js window.onload 加载多个函数的方法
Nov 02 Javascript
js导出table到excel同时兼容FF和IE示例
Sep 03 Javascript
js截取字符串的两种方法及区别详解
Nov 05 Javascript
详谈javascript中DOM的基本属性
Feb 26 Javascript
JavaScript获取表单内所有元素值的方法
Apr 02 Javascript
详解JavaScript的while循环的使用
Jun 03 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
Jun 27 Javascript
js微信支付实现代码
Dec 22 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
Jul 21 Javascript
jquery实现下载图片功能
Jul 18 jQuery
基于Vue el-autocomplete 实现类似百度搜索框功能
Oct 25 Javascript
JavaScript布尔运算符原理使用解析
May 06 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
丧钟首部独立剧集《丧钟:骑士与龙》北美正式开播,场面血腥
2020/04/09 欧美动漫
PHP5 操作MySQL数据库基础代码
2009/09/29 PHP
php面向对象全攻略 (十) final static const关键字的使用
2009/09/30 PHP
JavaScript 存在陷阱 删除某一区域所有节点
2010/05/10 Javascript
JavaScript 构造函数 面相对象学习必备知识
2010/06/09 Javascript
html+css+js实现xp window界面及有关功能
2013/03/26 Javascript
JS中自定义定时器让它在某一时刻执行
2014/09/02 Javascript
JavaScript包装对象使用详解
2015/07/09 Javascript
BootStrap点击下拉菜单项后显示一个新的输入框实现代码
2016/05/16 Javascript
基于JS代码实现实时显示系统时间
2016/06/16 Javascript
JS简单实现点击复制链接的方法
2016/08/03 Javascript
jQuery中的select操作详解
2016/11/29 Javascript
原生JS实现垂直手风琴效果
2017/02/19 Javascript
Bootstrap常用组件学习(整理)
2017/03/24 Javascript
详解vue2父组件传递props异步数据到子组件的问题
2017/06/29 Javascript
Vue.js搭建移动端购物车界面
2020/06/28 Javascript
解决layUI的页面显示不全的问题
2019/09/20 Javascript
vue+element-ui表格封装tag标签使用插槽
2020/06/18 Javascript
对numpy和pandas中数组的合并和拆分详解
2018/04/11 Python
Python 查找list中的某个元素的所有的下标方法
2018/06/27 Python
python爬取哈尔滨天气信息
2018/07/14 Python
Python 获取div标签中的文字实例
2018/12/20 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
2019/05/07 Python
Django项目创建到启动详解(最全最详细)
2019/09/07 Python
Python实现非正太分布的异常值检测方式
2019/12/09 Python
sublime3之内网安装python插件Anaconda的流程
2020/11/10 Python
美国最大的香水连锁店官网:Perfumania
2016/08/15 全球购物
Rag & Bone官网:瑞格布恩高级成衣
2018/04/19 全球购物
Giglio俄罗斯奢侈品购物网:男士、女士、儿童高级时装
2018/07/27 全球购物
Linux如何压缩可执行文件
2013/10/21 面试题
一份创业计划书范文
2014/02/08 职场文书
小学生评语大全
2014/04/18 职场文书
党员学习正风肃纪思想汇报
2014/09/12 职场文书
医院领导班子整改方案
2014/10/01 职场文书
2014年社区工会工作总结
2014/12/18 职场文书
2014年银行年终工作总结
2014/12/19 职场文书