本站首页    管理页面    写新日志    退出


«December 2025»
123456
78910111213
14151617181920
21222324252627
28293031


公告
本博客在此声明所有文章均为转摘,只做资料收集使用。并无其他商业用途。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:210
评论数量:205
留言数量:-19
访问次数:929064
建立时间:2007年5月10日




[EXT2.0]ExtJS2.0开发与实践笔记[3]——Ext中的Menu
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2008/4/24 22:58:06

在桌面程序gui开发中,menu是我们所经常使用的组件之一,它为用户提供了便利的程序功能选择项;而在web开发中,如何制作menu菜单效果一直是个很棘手的问题,如何让菜单通用,如何令菜单响应事件都需要我们自己动手来完成。所幸Ext也为我们提供了Menu组件,以Ext进行开发时,我们的不必要工作量将大大的减少。Ext的Menu组件,是通过几个类的联合来使用的,这些类包括:Ext.Toolbar、Ext.menu.Menu、Ext.menu.Item、 Ext.menu.CheckItem,以及一些特殊类型的菜单或菜单项,例如菜单Ext.menu.DateMenu、菜单项Ext.menu.ColorItem。  其中组织关系如下图:500)this.width=500'>Ext.Toolbar:该类表示一个菜单条,构建函数接受两个参数,第一个是指定toolbar的容器(contrainer);第二个参数是包含全部按钮的数组。Ext.menu.Menu:该类表示一个菜单,包含菜单标识id和菜单中所含的菜单项。 Ext.menu.Item:该类表示一个菜单项,菜单项包括一些属性,如上面的text和handler,根据不同菜单项类型,属性的使用略有不同,最基本的包括文本内容text和事件处理器函数handler/ checkHandler,具体请参考Ext 的API文档。 Ext.menu.CheckItem: 可选菜单项,从Ext.menu.Item继承而来,表示可选的菜单项。 Ext.menu.DateMenu: 特定的表示时间的菜单,从Ext.menu.Menu继承而来 。Ext.menu.ColorItem:特定的表示颜色选择的菜单项集合,可直接作为Menu构造函数中的items属性值。 下面我给出一个简单的用例代码:(Ext2.0配置方法见此)MenuExt.js 500)this.width=500'>500)this.width=500'>/**//**500)this.width=500'> * <p>Title: LoonFramework</p>500)this.width=500'> * <p>Description:Ext的Menu用例</p>500)this.width=500'> * <p>Copyright: Copyright (c) 2008</p>500)this.width=500'> * <p>Company: LoonFramework</p>500)this.width=500'> * <p>License: http://www.apache.org/licenses/LICENSE-2.0</p>500)this.width=500'> * @author chenpeng500)this.width=500'> * @email:ceponline@yahoo.com.cn500)this.width=500'> * @version 0.1500)this.width=500'> */500)this.width=500'>500)this.width=500'>Ext.onReady(function()...{500)this.width=500'>    Ext.QuickTips.init();500)this.width=500'>    //菜单选项500)this.width=500'>500)this.width=500'>    var dateMenu = new Ext.menu.DateMenu(...{500)this.width=500'>500)this.width=500'>        handler: function(dp, date)...{500)this.width=500'>            Ext.MessageBox.alert('日期选择', '选择日期为: ' + date.format('Y/m/d'), '');500)this.width=500'>        }500)this.width=500'>    });500)this.width=500'>    500)this.width=500'>500)this.width=500'>    var colorMenu = new Ext.menu.ColorMenu(...{500)this.width=500'>        id: 'colorMenu',500)this.width=500'>500)this.width=500'>        handler: function(cm, color)...{500)this.width=500'>             var rgb=Ext.color.hexToRGB(color);500)this.width=500'>             Ext.MessageBox.alert('颜色','R='+rgb.R+',G='+rgb.G+',B='+rgb.B, '');500)this.width=500'>        }500)this.width=500'>    });500)this.width=500'>    500)this.width=500'>500)this.width=500'>    function onItemCheck(item, checked)...{500)this.width=500'>        Ext.MessageBox.alert('选择', '当前点选[' + item.text + '],状态为 ' + (checked ? 'checked' : 'unchecked'), '');500)this.width=500'>    }500)this.width=500'>    500)this.width=500'>500)this.width=500'>    var menu = new Ext.menu.Menu(...{500)this.width=500'>        id: 'mainMenu',500)this.width=500'>500)this.width=500'>        items: [...{500)this.width=500'>            text: '选项1',500)this.width=500'>            //默认为选中500)this.width=500'>            checked: true,500)this.width=500'>            //选中处理方式为onItemCheck      500)this.width=500'>            checkHandler: onItemCheck500)this.width=500'>500)this.width=500'>        }, ...{500)this.width=500'>            text: '选项2',500)this.width=500'>            checked: true,500)this.width=500'>            checkHandler: onItemCheck500)this.width=500'>500)this.width=500'>        }, ...{500)this.width=500'>            text: '选项3!',500)this.width=500'>            checked: true,500)this.width=500'>            checkHandler: onItemCheck500)this.width=500'>        }, //分隔菜单500)this.width=500'>500)this.width=500'> '-', ...{500)this.width=500'>            text: '单选菜单',500)this.width=500'>500)this.width=500'>            menu: ...{500)this.width=500'>500)this.width=500'>                items: [...{500)this.width=500'>                    text: 'A',500)this.width=500'>                    checked: false,500)this.width=500'>                    group: 'theme',500)this.width=500'>                    checkHandler: onItemCheck500)this.width=500'>500)this.width=500'>                }, ...{500)this.width=500'>                    text: 'B',500)this.width=500'>                    checked: true,500)this.width=500'>                    group: 'theme',500)this.width=500'>                    checkHandler: onItemCheck500)this.width=500'>500)this.width=500'>                }, ...{500)this.width=500'>                    text: 'C',500)this.width=500'>                    checked: false,500)this.width=500'>                    group: 'theme',500)this.width=500'>                    checkHandler: onItemCheck500)this.width=500'>500)this.width=500'>                }, ...{500)this.width=500'>                    text: 'D',500)this.width=500'>                    checked: false,500)this.width=500'>                    group: 'theme',500)this.width=500'>                    checkHandler: onItemCheck500)this.width=500'>                }]500)this.width=500'>            }500)this.width=500'>500)this.width=500'>        }, ...{500)this.width=500'>            text: '日期选择',500)this.width=500'>            iconCls: 'calendar',500)this.width=500'>            menu: dateMenu500)this.width=500'>500)this.width=500'>        }, ...{500)this.width=500'>            text: '颜色选择',500)this.width=500'>            menu: colorMenu500)this.width=500'>        }]500)this.width=500'>    });500)this.width=500'>    //创建工具栏 500)this.width=500'>    var tb = new Ext.Toolbar();500)this.width=500'>    //绑定到toolbar元素500)this.width=500'>    tb.render('toolbar');500)this.width=500'>    //添加菜单500)this.width=500'>500)this.width=500'>    tb.add(...{500)this.width=500'>        text: 'Ext菜单测试',500)this.width=500'>        iconCls: 'bmenu',500)this.width=500'>        //注入菜单500)this.width=500'>        menu: menu500)this.width=500'>    });500)this.width=500'>    500)this.width=500'>    500)this.width=500'>    500)this.width=500'>    500)this.width=500'>});

阅读全文(3084) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.527 second(s), page refreshed 144815556 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号