菜单的种类很多,包括下拉菜单、分组菜单、右键菜单等等,右键菜单与Window桌面上单击右键弹出的菜单效果一样,只是样式不同,菜单上的内容包括文字、单选框、按钮等。对于EXT来说,这些菜单的实现都非常简单。
我们可以在一个面板的顶端或底端放置一横排功能按钮,按下不同的按钮时会执行不同的操作。我们把这个横条称为工具条,放在工具条上的按钮称为菜单。本章将详细介绍EXT中工具栏和菜单的使用方法。
一、简单菜单
创建一个简单工具条的方法如下,注意的一点是HTML代码必须要有:<div id="toolbar"></div>
过程大致包括:先创建一个工具条,用工具条的render()函数把它渲染在DIV上,然后调用Toolbar的add函数,向Toolbar添加4个按钮,同时还可以添加单击处理事件。
view plaincopy to clipboardprint?
Ext.onReady(function(){
var tb=new Ext.Toolbar();
tb.render('toolbar');
tb.add({
text:"新建N",
handler:function(){
Ext.Msg.alert('提示','新建');
}
},{
text:"修改C"
},{
text:"删除"
},{
text:"显示"
});
});
效果如图1所示:
图1 简单的工具条
二、向菜单中添加分隔线
分隔线显示就是一条水平线,可以使用它将菜单中不同类型的菜单项分隔显示,Ext中向菜单中添加分隔线的方式有两种。
1、使用连字符或'separator'作为参数,如下面的代码所示:
view plaincopy to clipboardprint?
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的实例作为参数,如下面的代码所示:
view plaincopy to clipboardprint?
menu1.add(new Ext.menu.Separator());
具体效果如图2所示:
图2.1 无分隔线效果
图2.2 具有分隔线效果
三、多级菜单
下拉菜单可以嵌套,而且嵌套的层数似乎任意的,我们先来看一个两层结构的菜单,实现方法很简单,只要在下拉菜单中再加一个menu菜单参数并指定对应的下级菜单即可,如下面代码所示:
view plaincopy to clipboardprint?
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
});
实现效果图如下所示:
图3 两层结构的嵌套菜单
在上面的实例中,我们可以直接使用menu参数指定在菜单的哪个部分加上子菜单。利用这些方法,我们就可以轻易实现自己想要的功能菜单了。
四、高级菜单
除了上面提到的最基本的菜单按钮,EXT还为我们提供了一些功能比较复杂的菜单控件,供我们直接调用,本节将详细介绍这些高级菜单的使用方法和实例。
4.1 多选菜单和单选菜单
我们使用Ext.menu.CheckItem来创建多选菜单,text参数表示菜单上显示的文字,checked参数表示当前菜单项是否被选中.checkHandler用来指定选中菜单时执行的处理菜单.单选菜单也基本类似,具体使用代码如下:
view plaincopy to clipboardprint?
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所示
图4 多选菜单
4.2 时间菜单
EXT为我们提供了选择日期的菜单Ext.menu.DateMenu,它可以让我们直接把日期选择功能加入到菜单中,实现的代码如下:
view plaincopy to clipboardprint?
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所示。
图5 日期菜单
4.3 颜色菜单
EXT为我们提供了选择颜色的功能菜单Ext.menu.ColorMenu,效果图如图6所示。
图6 颜色菜单
颜色选择菜单虽然不常用,但它的效果十分绚丽,它的用法与日期菜单相似,也有特定的handler,如下面代码所示:
view plaincopy to clipboardprint?
tb.add({
text:'颜色',
menu:new Ext.menu.ColorMenu({
handler:function(cm,color){
if(typeof color=='string'){
Ext.Msg.alert('选择颜色','选择的颜色是'+color);
}
}
})
});
五、小结
本章主要介绍如何创建工具条和菜单,以及如何使用下拉菜单和分级菜单对我们需要的功能按钮进行分组显示,除此之外,还关于高级菜单进行了分析。至于分页控件Ext.PagingToolbar的使用方法在后面的章节会给出介绍。
http://blog.csdn.net/rocket5725/archive/2009/09/15/4555207.aspx
分享到:
相关推荐
EXT分页工具条是一款在Web应用中常用的组件,主要用于展示数据集的分页信息,让用户能够方便地浏览大量数据。EXT是一个强大的JavaScript框架,它提供了丰富的UI组件和数据管理功能,使得开发人员能够构建高性能、...
第12~16章分别讲解了表单、窗口、按钮、菜单、工具条、图形、图表,以及其他组件和实用功能;第17~19章分别介绍了ext.direct、动画功能和拖放功能;第20~22章则分别讲解了扩展与插件、主题开发、mvc应用的架构。
你可以使用`store.each()`方法来迭代Store中的每一条记录。 2. **格式转换**:Excel文件通常以特定的XML格式(.xlsx)存在,这就需要我们将收集到的数据转换成这种格式。一种常见的做法是使用JavaScript库,比如`...
通过上述描述,我们可以看出,Ext-Gantt是一个功能全面的工具,适合需要进行项目管理和进度跟踪的Web应用。配合Ext JS的其他组件,可以构建出强大且用户友好的项目管理界面。不过,要熟练使用Ext-Gantt,你需要掌握...
2.7.1. 表面工作,先把分页工具条弄出来。 2.7.2. 2.0赐予我们更大的灵活性 2.7.3. 迫不得已,要加上后台脚本了。 2.7.4. 其实分页不一定要踩在脚下,也可以顶在头上。 2.8. 爱生活,EditorGrid。 2.8.1. 旋动舞步,...
因此,ExtJS提供了一个分页工具条,称为Ext.PagingToolbar,它可以帮助开发者快速实现分页功能。 在本例中,我们使用ExtJS 4.2创建了一个简单的表格控件,并使用Ext.PagingToolbar实现了分页功能。首先,我们创建了...
与顶端工具条类似,只是添加到表格底部。 #### 表格的加载与查询的实现 使用`store.load()`方法加载数据,配合`store.filter()`或`grid.getView().refresh()`实现查询。 #### 表格的单击事件 监听`itemclick`事件...
2.7.1. 表面工作,先把分页工具条弄出来。 2.7.2. 自定义分页工具条 2.7.3. 迫不得已,要加上后台脚本了。 2.7.4. 其实分页不一定要踩在脚下,也可以顶在头上。 2.7.5. 谣言说ext不支持前台排序 2.8. 爱生活,...
表格的分页功能可以通过前端工具条实现,也可以通过服务器端脚本实现。此外,表格控件还支持多种视觉效果和动画,为用户提供了丰富的交互体验。 #### 4. Ext树形控件 Ext的树形控件非常实用,开发者可以利用它实现...
### 使用Ext 2.0完成常见JavaScript任务 ...它不仅简化了DOM操作,还提供了一系列实用的工具,使得开发人员能够更高效地创建高质量的Web应用程序。随着对Ext 2.0更深入的学习,相信你会逐渐掌握其更多的高级特性。
displayMsg: '显示第{0}-{1}条记录共{2}条记录', displaySize: '5|10|15|20|all', emptyMsg: "无记录" }); ``` 6. **监听翻页事件**: - 监听分页工具栏的`change`事件,在翻页时更新`TreeStore`的数据。 `...
### 关于Ext2.0:深入理解与应用 #### 标题解读:“ext2.0” “ext2.0”通常指的是Ext JS框架的2.0版本,这是一...对于初学者而言,充分利用这些资源,系统地学习Ext JS及相关技术,将是进入前端开发领域的一条捷径。
//侦听goodslistview工具条上action=testBtn1的按钮单击事件 this.showWin(); },this); gp.down('button[action=testBtn2]').on('click',function(){ //侦听goodslistview工具条上action=testBtn2的...
EXT提供了如`XmlReader`、`JsonReader`和`ArrayReader`等不同的Reader,它们能解析不同格式的数据,并将解析结果转化为Record对象,Record是数据集中的单条记录,包含一系列定义好的DataField,每个DataField定义了...
可以是`Ext.Toolbar`对象、工具栏配置对象或按钮配置数组。一旦组件渲染完成,如果需要修改工具栏,应使用`getBottomToolbar`获取引用。 11. **bodyBorder**: 如果设置为`true`,会给组件的内部元素(`this.el`)...
总之,4ext中文版作为一款强大的刷机工具,提供了一条便捷的途径来定制和优化Android设备。然而,由于涉及系统级别的修改,刷机需要一定的技术知识和谨慎操作。对于初次尝试刷机的用户来说,学习和理解上述知识点是...
“工具条”(Toolbars)和“菜单”(Menus)也是常见的UI元素,它们通常用于提供功能按钮和下拉选项。开发者可以通过配置项定义按钮的图标、文本和事件处理函数。 最后,Ext4.0还包含了一些高级特性,如拖放(Drag ...
综上所述,这段代码展示了如何使用 Ext JS 创建一个具有多个可配置区域的布局,并且包含了如何使用工具栏和内容面板的具体实例。这些知识点对于理解和使用 Ext JS 构建复杂的 Web 应用程序非常有帮助。
首先,`Ext.Toolbar`被用来创建一个工具栏,它包含两个按钮:一个是“添加月租金”,另一个是“删除”。`border : false`确保了工具栏没有边框。每个按钮都有自己的`text`和`iconCls`属性,分别设置按钮的文字和图标...
如果需要,还可以添加滚动条、边框等。 6. **渲染并附加到DOM**:最后,将Panel渲染到页面上的某个元素,完成表格的展示。 示例代码可能如下: ```javascript Ext.application({ name: 'MyApp', launch: ...