`
zhugen209
  • 浏览: 3864 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

ExtJS的使用方法汇总(6)——工具栏和菜

阅读更多
本文来自CSDN博客,转载自:http://blog.csdn.net/rocket5725/archive/2009/09/15/4555207.aspx

   菜单的种类很多,包括下拉菜单、分组菜单、右键菜单等等,右键菜单与Window桌面上单击右键弹出的菜单效果一样,只是样式不同,菜单上的内容包括文字、单选框、按钮等。对于EXT来说,这些菜单的实现都非常简单。

我们可以在一个面板的顶端或底端放置一横排功能按钮,按下不同的按钮时会执行不同的操作。我们把这个横条称为工具条,放在工具条上的按钮称为菜单。本章将详细介绍EXT中工具栏和菜单的使用方法。

一、简单菜单
创建一个简单工具条的方法如下,注意的一点是HTML代码必须要有:<div id="toolbar"></div>

过程大致包括:先创建一个工具条,用工具条的render()函数把它渲染在DIV上,然后调用Toolbar的add函数,向Toolbar添加4个按钮,同时还可以添加单击处理事件。

Ext.onReady(function(){   
             var tb=new Ext.Toolbar();   
             tb.render('toolbar');   
                
             tb.add({   
                text:"新建N",   
                handler:function(){   
                    Ext.Msg.alert('提示','新建');   
                }   
             },{   
                text:"修改C"  
             },{   
                text:"删除"  
             },{   
                text:"显示"  
             });   
        });
 
二、向菜单中添加分隔线
分隔线显示就是一条水平线,可以使用它将菜单中不同类型的菜单项分隔显示,Ext中向菜单中添加分隔线的方式有两种。

1、使用连字符或'separator'作为参数,如下面的代码所示:
var menu1=new Ext.menu.Menu({   
                items:[   
                    {text:'菜单一'},   
                    {text:'菜单二'}   
                ]   
             });   
             //menu1.add('-');   
             menu1.add('separator');   
             var tb=new Ext.Toolbar();   
             tb.render('toolbar');   
                
             tb.add({   
                text:'新建',   
                menu:menu1   
             }); 

2、用Ext.menu.Separator的实例作为参数,如下面的代码所示:
menu1.add(new Ext.menu.Separator());  

三、多级菜单
下拉菜单可以嵌套,而且嵌套的层数似乎任意的,我们先来看一个两层结构的菜单,实现方法很简单,只要在下拉菜单中再加一个menu菜单参数并指定对应的下级菜单即可,如下面代码所示:
var menuHistory=new Ext.menu.Menu({   
                items:[   
                    {text:'今天'},   
                    {text:'昨天'},   
                    {text:'一周'},   
                    {text:'一年'}   
                ]   
             });   
                
             var menuFile=new Ext.menu.Menu({   
                items:[{   
                    text:'新建'  
                },{   
                    text:'打开'  
                },{   
                    text:'保存'  
                },{   
                    text:'历史',menu:menuHistory   
                },{   
                    text:'关闭'  
                }]   
             });   
                
             var tb=new Ext.Toolbar();   
             tb.render('toolbar');   
                
             tb.add({   
                text:'文件',   
                menu:menuFile   
             });
 

在上面的实例中,我们可以直接使用menu参数指定在菜单的哪个部分加上子菜单。利用这些方法,我们就可以轻易实现自己想要的功能菜单了。

四、高级菜单
除了上面提到的最基本的菜单按钮,EXT还为我们提供了一些功能比较复杂的菜单控件,供我们直接调用,本节将详细介绍这些高级菜单的使用方法和实例。

4.1 多选菜单和单选菜单

我们使用Ext.menu.CheckItem来创建多选菜单,text参数表示菜单上显示的文字,checked参数表示当前菜单项是否被选中.checkHandler用来指定选中菜单时执行的处理菜单.单选菜单也基本类似,具体使用代码如下:
var menuCheckbox=new Ext.menu.Menu({   
                items:[   
                    new Ext.menu.CheckItem({   
                        text:'粗体',   
                        checked:true,   
                        checkHandler:function(item,checked){   
                            Ext.Msg.alert('多选',(checked?'选中':'取消')+'粗体');   
                        }   
                    }),   
                    new Ext.menu.CheckItem({   
                        text:'斜体',   
                        checked:true,   
                        checkHandler:function(item,checked){   
                            Ext.Msg.alert('多选',(checked?'选中':'取消')+'斜体');   
                        }   
                    })   
                ]   
             })   
             var tb=new Ext.Toolbar();   
             tb.render('toolbar');   
                
             tb.add({   
                text:'字体',   
                menu:menuCheckbox   
             }); 


4.2 时间菜单

EXT为我们提供了选择日期的菜单Ext.menu.DateMenu,它可以让我们直接把日期选择功能加入到菜单中,实现的代码如下:
tb.add({   
                text:'日期',   
                menu:new Ext.menu.DateMenu({   
                    handler:function(dp,date){   
                        Ext.Msg.alert('选择日期','你选择的日期是{0}.',date.format('Y年m月d日'));   
                    }   
                })   
             }); 

注意,这时Ext.menu.DateMenu时一个Menu而不是MenuItem,使用时应该用menu参数将它设置成上级菜单的子菜单。实现的效果图如图5所示。

4.3 颜色菜单

EXT为我们提供了选择颜色的功能菜单Ext.menu.ColorMenu,效果图如图6所示。
颜色选择菜单虽然不常用,但它的效果十分绚丽,它的用法与日期菜单相似,也有特定的handler,如下面代码所示:
tb.add({   
                text:'颜色',   
                menu:new Ext.menu.ColorMenu({   
                    handler:function(cm,color){   
                        if(typeof color=='string'){   
                            Ext.Msg.alert('选择颜色','选择的颜色是'+color);   
                        }   
                    }                   
                })   
             });  

五、小结
本章主要介绍如何创建工具条和菜单,以及如何使用下拉菜单和分级菜单对我们需要的功能按钮进行分组显示,除此之外,还关于高级菜单进行了分析。至于分页控件Ext.PagingToolbar的使用方法在后面的章节会给出介绍。
分享到:
评论

相关推荐

    EXTJS4自学手册

    EXTJS4自学手册——EXT基本方法、属性(onReady、define、create) EXTJS4自学手册——EXT基本方法、属性(apply、applyIf、constructor) EXTJS4自学手册——EXT基本方法、属性(mixins、statics、require) EXTJS...

    Extjs 超级工具栏图标

    在EXTJS框架中,超级工具栏(Super Toolbar)是一种高度可定制的组件,它允许开发者在页面顶部创建一排或多排功能丰富的按钮、下拉菜单和分隔符,以实现各种用户交互操作。这些工具栏通常包含图标,使得用户能够快速...

    ExtJS工具栏

    以下是对标题和描述中所提及的ExtJS工具栏的详细解释: 1. **创建工具栏** 创建工具栏首先需要在HTML页面中预留一个`&lt;div&gt;`元素作为容器,然后在JavaScript代码中通过ExtJS库创建一个`Ext.Toolbar`对象,并调用其`...

    ExtJS的使用方法汇总--doc文档

    表格控件(Grid)是ExtJS的核心组件之一,其功能强大,包括列排序、数据缓存、拖放操作、列隐藏、行号显示、列汇总和单元格编辑等。创建一个基本的Grid,需要定义列模型(ColumnModel),其中包含了每一列的标题和...

    Extjs6示例中文版

    综上所述,《Extjs6示例中文版》不仅提供了详细的ExtJS6教程,还分享了作者的实践经验和个人见解,这对于想要深入学习和掌握ExtJS6的开发者来说是一份宝贵的资源。通过学习本书,读者不仅可以了解ExtJS6的基础知识和...

    Extjs 3.3切换tab隐藏相应工具栏出现空白解决

    1. 隐藏工具栏时,直接使用ExtJS提供的API,调用hide()方法即可隐藏工具栏,但这可能会造成布局上的问题。我们可以在隐藏工具栏的同时,将其高度设为零,从而避免留下空白。 2. 显示工具栏时,我们可以使用show()...

    Extjs教程_第四章_按钮、菜单和工具栏(2)

    在EXTJS开发中,按钮、菜单和工具栏是构建用户界面的关键元素,它们提供了丰富的交互性和可定制性。本章主要介绍EXTJS中关于这些元素的使用和配置。 1. Shortcuts(快捷方式) EXTJS提供了一系列的快捷方式来简化...

    extjs4中文视频下载地址

    - **Core 包**:包含了一些核心类和工具函数,为其他模块提供支持。 - **Ext 类**:Ext 是 ExtJS 的核心类,提供了一系列静态方法,用于简化常见的开发任务,如创建组件、处理事件等。 #### 十、ExtJS 4.0 的 util ...

    sencha touch和ExtJS使用的日历插件

    - 文档:解释插件的使用方法、API参考和配置选项。 在实际项目中,开发者需要根据自身需求调整日历插件的配置,例如设置默认视图、定制事件处理函数,或者通过API与其他组件交互。同时,考虑到性能和用户体验,优化...

    Nutz+ExtJS示例教程——后台Service实现

    **Nutz+ExtJS示例教程——后台Service实现** Nutz和ExtJS是两种不同的技术栈,它们在Web开发中有着各自的应用。Nutz是一款基于Java的轻量级框架,它提供了全面的Web开发解决方案,包括ORM、AOP、IOC等。而ExtJS则是...

    EXTJS4 菜单栏

    EXTJS4的菜单栏设计灵活,可自定义程度高,支持多级菜单、图标、分隔符等元素,为开发者提供了丰富的API和配置选项。 菜单栏在EXTJS4中的实现主要基于`Ext.menu.Menu`类。这个类提供了一个容器,可以容纳多个菜单项...

    Extjs6-iframe-优化.rar

    这个名为"Extjs6-iframe-优化.rar"的压缩包文件似乎包含了一个针对ExtJS6的特定插件——IFrame.js的优化方案。IFrame,全称Inline Frame,是HTML中的一个元素,用于在一个网页中嵌入另一个网页,实现页面的复合展示...

    vswd-ext_2.0.2——2008Extjs提示工具

    《vswd-ext_2.0.2——2008Extjs提示工具》 在Web开发领域,JavaScript框架的使用极大地提高了开发效率,其中Ext JS是一个非常流行的前端UI库,它提供了丰富的组件和强大的数据处理能力。然而,由于其庞大的API和...

    extjs 6 gettng started

    - **开发工具**:详细介绍了如何使用 Sencha Cmd 来构建和管理 ExtJS 6 项目。 - **组件库**:全面覆盖了 ExtJS 6 提供的各种 UI 组件,包括表格、图表、表单等。 - **数据管理**:探讨了数据模型的设计方法,以及...

    ExtJS——poa

    总结起来,这篇关于"ExtJS——poa"的内容可能涉及如何在ExtJS项目中使用POA设计模式来提高代码质量、可测试性和可维护性,同时结合SQL查询处理和展示数据。如果你希望深入学习,可以从提供的博文链接中获取更多详细...

    extjs 开发工具

    EXTJS是一种基于JavaScript的前端开发框架,用于构建富互联网应用程序(RIA)。它提供了一系列组件,如表格、面板、菜单、窗口等,使开发者能够创建功能...掌握这些工具的使用方法,对于提升EXTJS开发效率至关重要。

    Extjs4使用要点个人整理

    2. **按钮(Button)的用法**:`EXTjs button用法.doc`将详细介绍如何创建和使用ExtJS 4的按钮组件,包括设置按钮文本、图标、事件监听器以及使用不同类型的按钮,如工具栏按钮、菜单按钮等。 3. **表单(Form)...

    Extjs6 下拉列表

    综上所述,ExtJS6的下拉列表(ComboBox)和GridCombo扩展控件提供了强大的功能和灵活性,它们可以用于创建丰富的用户界面,满足各种复杂的业务需求。理解和熟练掌握这些组件的使用,对于开发高质量的Web应用至关重要...

    extjs4.2 动态生成toolbar

    "ExtJS 4.2 动态生成Toolbar" 在 ExtJS 4.2 中实现动态生成 Toolbar,以满足 gridPanel 中动态生成带按钮...使用 ExtJS 4.2 动态生成 Toolbar 需要在视图层、Toolbar.js 和后台调用创建工具栏的方法中进行配置和实现。

Global site tag (gtag.js) - Google Analytics