`
刘金剑
  • 浏览: 147559 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ext中的菜单基本应用 转载

    博客分类:
  • Ext
阅读更多

简单菜单应用
  菜单包括很多种,比如下拉菜单、分组菜单位、上下文件弹出菜单位,菜单上的内容包括文件、单选框、按钮等。对于ExtJS来说,菜单的实现非常简单,我们来看下面示例。
Html代码如下:

欢迎进入管理系统 < br />
< div  id ="menu" ></ div >
 我们想在id为menu的这一区域里面显示系统的主菜单,应用ExtJS,则可以使用下面的javascript代码实现:
 var btn1=new Ext.Button({
 text:"文件",
 menu:[
  {icon:"open.jpg",text:"打开"},
  {icon:"save.jpg",text:"保存"},
  {text:"关闭"}]});
var btn2=new Ext.Button({
 text:"编辑",
 menu:[
  {text:"复制"},
  {text:"拷贝"},
  "-",
  {text:"查找"},
  {text:"替换"}
 ] 
})
var toolbar=new Ext.Toolbar({
 renderTo:"menu",
 items:[btn1,btn2]
});


   在上面的代码中,我们首先创建了两个普通的按钮Button,注意构造参数中的配置选项除了text以外,还包含一下menu属性,menu属性是 一个数组,数组中的每一项就是一个菜单项;两个包含了菜单的按钮创建完以后,我们使用new Ext.Toolbar直接创建一个简单工具栏控件,指定工具栏渲染到id为menu的DOM元素,并且工具栏中包含两个按钮。执行上面的代码,可以得到 如图11-1所示的效果。


 
  图11-1 鼠标移到“文件”按钮时显示的下拉菜单

 
  图11-2 鼠标移到“编辑”按钮时显示的下拉菜单

 手动创建及显示菜单
  当然,对于给包含menu属性的控件添加菜单非常容易,由于这些控件已经自动添加了菜单处理及显示的代码。对于没有提供菜单支持的控件来说,我们可以直接使用ExtJS中的菜单组件Ext.menu.Menu来实现显示菜单。
  在ExtJS中,菜单项由Ext.menu.Item类定义,该类直接继承自Ext.menu.BaseItem,我们只需创建一个菜单Menu对 象,然后往Menu对象中加入菜单项,然后在需要显示菜单的时候调用菜单Menu对象的show或showAt方法即可在指定位置显示菜单。我们再来看下 面的示例。
假如页面中html代码如下:
<br/>
<div id="hello" style="cursor:pointer">显示菜单</div>

  现在我们要实现在用户点击“显示菜单”这一个div时,显示一个包含“文件”、“编辑”等项的下拉菜单,下面的javascript代码实现了该功能:

var  menu = new  Ext.menu.Menu();
 menu.add(
... {
  text:
" 文件 " ,
  menu:[
   
... {text: " 打开 " } ,
   
... {text: " 保存 " } ,
   
... {text: " 关闭 " } ]
  }
,
  
... {
  text:
" 编辑 " ,
  menu:[
   
... {text: " 复制 " } ,
   
... {text: " 拷贝 " } ]
  }

 );
 
var  h = Ext.get( " hello " );
 h.on(
" click " , function (e) ... {
  menu.show(h);
 }

 );



  在上面的代码中,我们首先使用new Ext.menu.Menu()创建了一个菜单对象,然后再调用菜单对象的add方法来加入菜单项,add方法可以一次性加入多个菜单项,每一个菜单项可 以是一个Ext.menu.Item对象,也可以是用于构造Ext.menu.Item的配置对象,这里直接使用的是菜单项描述对象。在菜单项中,我们又 使用menu属性来定义了“文件”、“编辑”两个菜单项的二级菜单。
  在定义完了菜单并加入菜单项后,我们定义了hello这个DOM元素的click事件响应函数,在响应函数中调用菜单对象menu的show方法来显示菜单,show方法中包含一个参数,表示让菜单显示在哪儿。
执行上面的程序,点击页面中“显示菜单”这个DIV,则会看到如图11-3所示的菜单显示效果。
 
图11-3 手动创建及显示菜单

 ExtJS中的菜单项
  在ExtJS中,菜单项提供了普通菜单项、文本菜单项、单选、复选等几种基本的菜单项,我们前面两个例子中涉及到的都是普通的菜单项。下面我们再通过一个示例来简单地对文本菜单项、单选及复选菜单项有一个简单的了解,代码内容如下:

var  menu = new  Ext.menu.Menu();
 menu.add(
... {
  text:
" 字号 " ,
  menu:[
   
new  Ext.menu.CheckItem( ... {text: " " ,group: " font " } ),
   
new  Ext.menu.CheckItem( ... {text: " " ,group: " font " } ),
   
new  Ext.menu.CheckItem( ... {text: " " ,group: " font " } )
   ]
  }
,
  
... {
  text:
" 字体 " ,
  menu:[
   
new  Ext.menu.CheckItem( ... {text: " 加粗 " } ),
   
new  Ext.menu.CheckItem( ... {text: " 斜体 " } )
   ]
  }
,
  
" - " ,
  
new   Ext.menu.TextItem( " 文本菜单项1 " ),
  
" 文本菜单项2 "
  
 );
 
var  h = Ext.get( " hello " );
 h.on(
" click " , function (e) ... {
  menu.show(h);
 }

 );

 


   在上面的代码中,首先使用new Ext.menu.Menu()来创建了一个菜单对象,在使用add方法添加菜单项的时候,“字号”菜单的二级菜单项是CheckItem对象,里面通过 设置group属性使得该菜单项成为单选菜单项,因为“字号”同一时刻只能选择一种;“字体”菜单的二级菜单项同样是使用CheckItem来创建,由于 没有指定group属性,因些该菜单项就是复选菜单项。另外,还使用new  Ext.menu.TextItem来创建文本菜单项,文本菜单项也可以直接使用字符串代表,比如“文本菜单项2”,而文本内容为“-”的文本菜单项表现 出来会成来菜单项分隔符。执行上面的程序,点击页面中“hello”这个DIV时,将会显示菜单,效果如图11-4与图11-5所示。
 
图11-4 单选菜单项效果
 
图11-5 复选菜单项效果

 处理菜单事件
  对于普通的菜单项来说,要设置事件响应函数非常简单,只需要在菜单项添初始化的时候,在配置选项中添加上handler属性及值即可。比如下面包含了事件处理器的菜单项:

 

function  openFile()
... {
 Ext.MessageBox.alert(
" 提示 " , " 打开文件 " );
}

var  btn1 = new  Ext.Button( ... {
 text:
" 文件 " ,
 menu:[
  
... {icon: " open.jpg " ,text: " 打开 " ,handler:openFile} ,
  
... {icon: " save.jpg " ,text: " 保存 " } ,
  
... {text: " 关闭 " } ]
}
);


在“文件”菜单项下面的“打开”菜单项中,设置了handler属性,因此点击该菜单项则会执行openFile函数。

 其它菜单项
  除了普通菜单项、文本、单选菜单项、复选菜单项以外,ExtJS中的菜单项理论上还可以是其它任何控件,或者说页面中大部份DOM节点都可以用来做为 菜单项上面的内容。ExtJS提供了一个Ext.menu.Adapter类来支持把其它控件转换成菜单项,并提供了两个常用的用于选择日期及颜色的菜 单,即Ext.menu.DateMenu与Ext.menu.ColorMenu,这两个菜单里面都只有一个菜单项,即 Ext.menu.DateItem与Ext.menu.ColorItem。下面简单看示例:

var  btn1 = new  Ext.Button( ... {
 text:
" 文件 " ,
 menu:[
  
... {icon: " open.jpg " ,text: " 打开 " } ,
  
... {icon: " save.jpg " ,text: " 保存 " } ,
  
... {text: " 关闭 " } ]}
);
var  btn2 = new  Ext.Button( ... {
 text:
" 编辑 " ,
 menu:[
  
... {text: " 复制 " } ,
  
... {text: " 拷贝 " } ,
  
" - " ,
  
... {text: " 查找 " } ,
  
... {text: " 替换 " }
 ] 
}
);
var  btn3 = new  Ext.Button( ... {
 text:
" 其它 " ,
 menu:[
  
... {text: " 选择日期 " ,menu: new  Ext.menu.DateMenu()} ,
  
... {text: " 选择颜色 " ,menu: new  Ext.menu.ColorMenu()}
 ] 
}
);
var  toolbar = new  Ext.Toolbar( ... {
 renderTo:
" menu " ,
 items:[btn1,btn2,btn3]
}
);
  在上面的代码中,btn3这个按钮下面包含“选择日期”及“选择颜色”两个菜单项,选择日期下的菜单是一个DateMenu对象,“选择颜色”下的菜 单是ColorMenu对象。执行上面的程序,当点击其它按钮的时候,可以得到如图11-6与11-7所示的日期选择及颜色选择菜单。
 
图11-6 日期DateMenu选择菜单的显示效果
 
图11-7 颜色ColorMenu选择菜单的显示效果


分享到:
评论

相关推荐

    ext3横向菜单

    在Linux环境中,这种菜单设计可能出现在文件管理器、控制面板或者系统设置等应用中,让用户更方便地访问各种系统管理功能。 EXT3的主要特性包括: 1. **日志式文件系统**:如前所述,EXT3使用日志来记录文件系统的...

    Ext级联菜单实例

    在ExtJS中,级联菜单可以通过`Ext.menu.Menu`类来创建,该类可以方便地配置菜单项和它们之间的层级关系。 创建级联菜单的基本步骤如下: 1. **初始化菜单对象**: 首先,你需要创建一个基础的菜单对象,这通常是一...

    Ext_JS应用系统中的智能树形菜单

    在EXT JS应用系统中,智能树形菜单是一种常见的交互组件,它允许用户通过层次结构来组织和导航数据。本文将深入探讨如何利用加权双历树(Weighted Bi-Layer Tree,WBLT)实现这样的功能,以及EXT JS库中的相关技术。...

    ext 下拉菜单。(不要下,不能用)

    在EXT JS库中,下拉菜单(Dropdown Menu)是一种常见的组件,用于提供多个选项供用户选择。EXT JS是一个强大的JavaScript库,专为构建富客户端Web应用程序而设计,它提供了丰富的UI组件和数据绑定机制。然而,从标题...

    ext带右键菜单的树

    在描述中提到的"ext带右键菜单的树"是指在ExtJS中实现的一种交互功能,即在树形控件上通过右键点击来显示一个上下文菜单。这种功能极大地提高了用户与应用程序的交互性,使得操作更加直观和便捷。 在ExtJS中,树形...

    如何使用ext写的树形菜单

    在EXT中,实现树形菜单主要依赖于`Ext.tree.Panel`组件,这个组件用于展示层次结构的数据。 1. **树形菜单基础** 树形菜单是一种具有层级结构的界面元素,通常用于表示文件系统、组织结构或导航菜单。在EXT中,`...

    ext布局和菜单设计整理

    ext布局和菜单设计整理

    Ext 两种树形菜单

    在给定的标题“Ext 两种树形菜单”中,我们可以推测这是一个关于使用Ext JS框架创建两种不同样式或功能的树形菜单的示例。Ext JS是一个强大的JavaScript库,专门用于构建富客户端应用,它提供了丰富的组件和API来...

    Ext中CKEditor应用事例

    在Ext中使用CKEditor,可以为用户提供更加直观和便捷的文字编辑体验。 集成CKEditor到Ext应用程序首先需要引入CKEditor的相关资源,这通常包括CSS样式文件和JavaScript库。CKEditor的文件通常可以从官方网站下载,...

    Ext动态联动菜单例子

    在用ExtJs+myEclipse6+ssh做项目时需要动态级联菜单功能(就是从数据库中拿数据),因为初次接触Ext,在网上没找到动态联动,只找到了静态联动,于是花了几个小时边学边做终于成功了!需要的兄弟姐妹可以看看,只实现...

    Ext树形菜单(我自己做的)

    在给定的标题“Ext树形菜单(我自己做的)”中,我们可以推断出这个压缩包包含了一个由开发者自定义的ExtJS树形菜单组件。树形菜单是用户界面中常用的一种元素,它用于展示层次结构的数据,比如文件系统、组织结构或...

    ext2.0官方文档(chm),Ext 2.0 简明教程,Ext2经典应用

    文档中详细介绍了Ext 2.0的所有类、方法、属性和事件,是学习和开发Ext 2.0应用的重要参考资料。通过查阅官方文档,你可以了解到如何初始化Ext应用、如何创建组件、如何处理数据绑定、如何使用布局管理器等内容。 2...

    ext教程、ext核心API 、ext中文教程

    在压缩包中的"EXT教程"文件,可能包含了从入门到进阶的各类教程文章,覆盖了EXT的基本概念、组件使用、布局配置、数据绑定等多个方面。通过阅读这些教程,你可以逐步掌握EXT的开发技巧,从而构建出专业级别的Web应用...

    Ext 中文文档 经典

    它提供了丰富的用户界面组件,如表格、树形视图、菜单、按钮等,使得开发者能够创建出具有桌面应用般用户体验的网页应用。"Ext 中文文档 经典"这个资源显然是针对想要学习或已经使用ExtJS的开发者的,它提供了中文...

    解析Xml构建Ext树形菜单

    2. **创建数据模型**:在EXT中,数据模型(Model)定义了数据的结构和行为。创建一个与XML数据对应的Model,比如`MenuItemModel`,包含对应字段。 3. **创建数据存储**(Store):利用`Ext.data.Store`来管理从XML...

    ext PPT,EXT 教程,EXT 中文帮助手册,EXT 中文手册,ext_教程(入门到精通),Ext技术程序文档大全.

    它们可能包括创建EXT应用的基本步骤、组件的使用方法、事件处理和响应机制等,是学习EXT的基础教材。 3. **EXT 中文帮助手册**:这是一份详细的辅助学习材料,可能包含EXT框架的高级特性,如AJAX通信、图表组件、...

    ext 中文源代码

    在提供的“ext2中文文档新春版”中,很可能是EXT2版本的相关文档,EXT2是EXT的一个早期版本,可能包含了详细的API文档、教程和示例代码,帮助开发者理解EXT的基本用法和内部机制。通过阅读这些文档,开发者可以了解...

    EXT JS中文API+中文教程+中文资料+源码

    它提供了大量的组件和功能,包括表格、树形视图、图表、菜单、工具栏、窗体等,使得开发者能够构建功能丰富的桌面级应用界面。EXT JS中文API、中文教程和中文资料的集合对于学习和使用EXT JS的开发者来说是非常宝贵...

    Ext 图标大全及应用.rar(绝对好用)

    在Ext框架中,图标通常用于按钮、菜单项、工具提示以及其他交互元素,以直观地传达功能或操作。这些图标可以是矢量图形,因此在不同分辨率和设备上都能保持清晰。 资源包中的"readme.html"可能包含关于图标集的详细...

Global site tag (gtag.js) - Google Analytics