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执行顺序
Nov 09 Javascript
extJs 常用到的增,删,改,查操作代码
Dec 28 Javascript
关于JavaScript与HTML的交互事件
Apr 12 Javascript
JQUERY 设置SELECT选中项代码
Feb 07 Javascript
node.js操作mongoDB数据库示例分享
Nov 26 Javascript
JS简单实现移动端日历功能示例
Dec 28 Javascript
使用JavaScript实现链表的数据结构的代码
Aug 02 Javascript
jQuery-ui插件sortable实现自由拖动排序
Dec 01 jQuery
微信小程序上传图片到php服务器的方法
May 23 Javascript
VueX模块的具体使用(小白教程)
Jun 05 Javascript
如何利用 JS 脚本实现网页全自动秒杀抢购功能
Oct 12 Javascript
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
Jan 05 Vue.js
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 魔兽争霸
php curl post 时出现的问题解决
2014/01/30 PHP
Zend Framework框架教程之Zend_Db_Table_Rowset用法实例分析
2016/03/21 PHP
PHP简单读取PDF页数的实现方法
2016/07/21 PHP
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
JS启动应用程序的一个简单例子
2008/05/11 Javascript
onmouseover和onmouseout的一些问题思考
2013/08/14 Javascript
jQuery实现的淡入淡出二级菜单效果代码
2015/09/15 Javascript
利用node.js搭建简单web服务器的方法教程
2017/02/20 Javascript
Vue+Flask实现简单的登录验证跳转的示例代码
2018/01/13 Javascript
vue强制刷新组件的方法示例
2019/02/28 Javascript
原生JS使用Canvas实现拖拽式绘图功能
2019/06/05 Javascript
Vue.js递归组件实现组织架构树和选人功能
2019/07/04 Javascript
JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
2019/07/23 Javascript
JQuery获得内容和属性方法解析
2020/05/30 jQuery
Javascript类型判断相关例题及解析
2020/08/26 Javascript
Python random模块常用方法
2014/11/03 Python
python中循环语句while用法实例
2015/05/16 Python
Django ORM框架的定时任务如何使用详解
2017/10/19 Python
Python函数中不定长参数的写法
2019/02/13 Python
pandas计算最大连续间隔的方法
2019/07/04 Python
下载官网python并安装的步骤详解
2019/10/12 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
2020/04/24 Python
Python-jenkins模块之folder相关操作介绍
2020/05/12 Python
利用指针变量实现队列的入队操作
2012/04/07 面试题
最新计算机专业自荐信
2013/10/16 职场文书
房地产财务管理制度
2014/02/02 职场文书
大学生2014全国两会学习心得体会
2014/03/10 职场文书
学校火灾防控方案
2014/06/09 职场文书
研究生给导师的自荐信
2015/03/06 职场文书
学校党员干部承诺书
2015/05/04 职场文书
工资证明格式模板
2015/06/12 职场文书
招商银行工作证明
2015/06/17 职场文书
500字作文之周记
2019/12/13 职场文书
redis数据一致性的实现示例
2022/03/18 Redis
MySQL的表级锁,行级锁,排它锁和共享锁
2022/07/15 MySQL