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 相关文章推荐
基于mouseout和mouseover等类似事件的冒泡问题解决方法
Nov 18 Javascript
微信支付如何实现内置浏览器的H5页面支付
Sep 25 Javascript
JS简单实现仿百度控制台输出信息效果
Sep 04 Javascript
微信公众号  提示:Unauthorized API function 问题解决方法
Dec 05 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
Jan 27 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
Feb 10 Javascript
JS中Map和ForEach的区别
Feb 05 Javascript
基于vue-element组件实现音乐播放器功能
May 06 Javascript
写一个Vue Popup组件
Feb 25 Javascript
使用Vue生成动态表单
Nov 26 Javascript
JS代码检查工具ESLint介绍与使用方法
Feb 04 Javascript
JavaScript枚举选择jquery插件代码实例
Nov 17 jQuery
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
php 文件上传实例代码
2012/04/19 PHP
分享php分页的功能模块
2015/06/16 PHP
CI(CodeIgniter)模型用法实例分析
2016/01/20 PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
2019/03/11 PHP
php异常处理捕获错误整理
2019/09/23 PHP
JavaScript学习笔记(十)
2010/01/17 Javascript
jQuery实现原理的模拟代码 -6 代码下载
2010/08/16 Javascript
Js判断CSS文件加载完毕的具体实现
2014/01/17 Javascript
JavaScript中的比较操作符>、=、
2014/12/31 Javascript
AngularJS基础学习笔记之简单介绍
2015/05/10 Javascript
易被忽视的js事件问题总结
2016/05/14 Javascript
layui之select的option叠加问题的解决方法
2018/03/08 Javascript
原生js实现移动端Touch轮播图的方法步骤
2019/01/03 Javascript
详解微信小程序开发聊天室—实时聊天,支持图片预览
2019/05/20 Javascript
Vue移动端右滑屏幕返回上一页附源码下载
2019/06/26 Javascript
echarts大屏字体自适应的方法步骤
2019/07/12 Javascript
js使用文件流下载csv文件的实现方法
2019/07/15 Javascript
微信小程序可滑动周日历组件使用详解
2019/10/21 Javascript
vue实现在进行增删改操作后刷新页面
2020/08/05 Javascript
详解vue父子组件状态同步的最佳方式
2020/09/10 Javascript
[01:25]2015国际邀请赛最佳短片奖——斧王《拆塔英雄:天赋异禀》
2015/09/22 DOTA
[01:03:27]NAVI vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python脚本设置超时机制系统时间的方法
2016/02/21 Python
Python Des加密解密如何实现软件注册码机器码
2020/01/08 Python
Python识别验证码的实现示例
2020/09/30 Python
详解python模块pychartdir安装及导入问题
2020/10/22 Python
澳大利亚领先的在线美容商店:Facial Co
2017/10/22 全球购物
项目经理岗位职责
2013/11/11 职场文书
情侣吵架检讨书
2014/02/05 职场文书
服务质量承诺书
2014/03/27 职场文书
三八妇女节标语
2014/10/09 职场文书
贫困证明书格式及范文
2014/10/15 职场文书
个人年终总结开头
2015/03/06 职场文书
2015年销售部工作总结范文
2015/04/27 职场文书
硕士毕业答辩开场白
2015/05/27 职场文书
五年级作文之成长
2019/09/16 职场文书