EXTJS4.x之实战项目(3)菜单控制器MenuPanelController
来源:互联网 发布:windows魔法助手 编辑:程序博客网 时间:2024/06/08 04:19
上次我们完成了菜单界面的制作。接下来来我们来做响应事件。
1.添加Conroller,如下图添加一个Controller
设置userClassName为MenuPanelController
添加四个函数(Functions),添加方法如下图
init无参数;
getTab参数为 viewName;
onItemClick参数为 view,record,item,index,e,eOpts
openTab参数为 panel,id
2.为MenuPanelController添加view如下图
3.编写MenuPanelController的init函数
在init函数中进行事件的绑定,打开init函数编辑界面输入以下内容
this.control( { 'BaseContentManager': { itemclick:this.onItemClick }, 'SectionManager': { itemclick:this.onItemClick } });
如下图
分别设置BaseContentManager和SectionManager的userAlias为BaseContentManager和SectionManager。
编辑onItemClick函数,输入以下内容
alert(record.get('text'));
此时运行一下,效果如下图所示:
此时的菜单点击事件可以正常响应到。
4.根据点击的内容创建内容在中间容器显示
这部分比较复杂:
1)修改onItemClick函数内容为:
if(record.get('leaf')){ var panel = Ext.getCmp(record.get('id')); if(!panel) { panel = { title: record.get('text'), iconCls: 'tabs', items:[this.getTab(record.get('view'))], closable: true }; this.openTab(panel,record.get('id')); }else{ var main = Ext.getCmp("CenterTabPanel"); main.setActiveTab(panel); }}
代码的作用是获取点击的id,通过id查找panel,如果存在则激活,如果不存在则通过view属性的值创建panel。
2)编辑getTab函数内容为:
var pnContent = Ext.create(viewName, {});//debugger;try{ pnContent.getStore().reload();}catch (e) {}finally{ return pnContent;}
代码作用为创建panel并加载数据源
3)编写openTab函数内容为:
var o = (typeof panel == "string" ? panel : id || panel.id);var main = Ext.getCmp("CenterTabPanel");var tab = main.child('panel[id='+o+']'); if (tab) { main.setActiveTab(tab); } else if(typeof panel!="string"){ panel.id = o; var p = main.add(panel); //alert(main.getXTypes()); main.setActiveTab(p); }
代码作用是激活窗口
4)创建ArticleGridPanel, MediaGridPanel,SectionGridPanel,SectionContentGridPanel四个GridPanel视图。步骤是拖动一个GridPanel到工作空间的views分组下。设置属性userClass和title,删除width和height属性
userClass分别设置为:ArticleGridPanel, MediaGridPanel,SectionGridPanel,SectionContentGridPanel
userAlias分别设置为:ArticleGridPanel, MediaGridPanel,SectionGridPanel,SectionContentGridPanel
title分别为:文章资源管理,媒体资源管理,栏目管理,栏目内容管理;
整个工程如下图所示
5)删除CenterTabPanel中的默认tabPanel,结果如下图
6)保存运行,点击菜单中部视图将切换到正确的页面,如下图
- EXTJS4.x之实战项目(3)菜单控制器MenuPanelController
- EXTJS4.x之实战项目(1)
- EXTJS4.x之实战项目(2)左侧菜单数据填充数据
- EXTJS4.x之实战项目(5)ArticleGridPanel实现增删改查之增
- EXTJS4.x之实战项目(6)ArticleGridPanel实现增删改查之改
- EXTJS4.x之实战项目(7)ArticleGridPanel实现增删改查之删
- EXTJS4.x之实战项目(8)ArticleGridPanel实现增删改查之查
- EXTJS4.x之实战项目(4)填充ArticleGridPanel的数据
- EXTJS4.x之实战项目(9)SectionContentGridPanel栏目内容管理页的实现
- EXTJS4.x之无限级树形菜单实现
- EXTJS4.x之grid(3)实现删除用户功能
- EXTJS4.x之grid(1)
- EXTJS4.x之国际化
- ExtJS4.x数据模型之Model
- ExtJS4.x数据模型之Proxy
- 【Cocos2d-X游戏实战开发】捕鱼达人之菜单按钮的创建(四)
- (4)AngularJS 1.X 之控制器
- EXTJS4.x之grid(2)--实现添加用户功能
- 安防行业
- AS3游戏中可视对象上限及位图相干的内存耗损实测
- Java IO流分析整理
- iPhone toolchain 4.0 (Ubuntu 10.10 开发环境)
- Android 的AT命令协议栈初始化
- EXTJS4.x之实战项目(3)菜单控制器MenuPanelController
- 黑马程序员_java多线程
- 使用ActivityGroup时,如何保存Activity状态、如何使用子Activity的Menu?
- SIG集合
- 硬盘控制器
- sql递归查询
- 树状的数据,如何在jsp页面中呈阶梯状显示?
- 2、CentOS 5.5 yum源,推荐网易 163.com的yum
- Mac OS X下配置SVN .