ExtJs4 笔记(5) Ext.Button 按钮
从本篇开始讲基础控件,ExtJs对所有的UI控件都有它自己的一套封装。本篇要讲到的是ExtJs的按钮。主要包括按钮事件、带分割线、带图标、带菜单的按钮,下拉选项式按钮和按钮组合等。我们先看看效果图:
预览
如下是用到的html:
[html]1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | < h1 > 三种方式实现事件: </ h1 > < div id="div1" class="content"> < ul > < li id="li1"></ li > < li id="li2"></ li > < li id="li3"></ li > </ ul > </ div > < h1 > 带图标菜单: </ h1 > < div id="div2" class="content"> </ div > < h1 > 带分割线的按钮</ h1 > < div id="div3" class="content"> </ div > < h1 > 菜单式按钮</ h1 > < div id="div4" class="content"> </ div > < h1 > 按钮组合</ h1 > < div id="div5" class="content"> </ div > |
一、基本按钮,三种方式实现按钮事件
这里介绍了最基本的按钮生成代码,第一个按钮具备弹起和按下两种状态,三个按钮分别别设置成三种大小。每个按钮的单击事件都是通过一种新的实现方式。下面看看Js代码:
[Js]1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | Ext.create( "Ext.Button" , { renderTo: Ext.get( "li1" ), text: "事件实现1" , allowDepress: true , //是否允许按钮被按下的状态 enableToggle: true , //是否允许按钮在弹起和按下两种状态中切换 handler: function () { Ext.Msg.alert( "提示" , "第一个事件" ); }, id: "bt1" }); Ext.create( "Ext.Button" , { renderTo: Ext.get( "li2" ), text: "事件实现2" , listeners: { "click" : function () { Ext.Msg.alert( "提示" , "第二个事件" ); } }, id: "bt2" , scale: 'medium' }); var bt3 = Ext.create( "Ext.Button" , { renderTo: Ext.get( "li3" ).dom, text: "事件实现3" , id: "bt3" , scale: 'large' }); bt3.on( "click" , function () { Ext.Msg.alert( "提示" , "第三个事件" ); }); |
二、带图标菜单
按钮可以带图标和菜单,我们可以在配置项里面配置:
[Js]1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | Ext.create( "Ext.Button" , { renderTo: Ext.get( "div2" ), id: "bt4" , text: "带菜单带图标" , iconCls: "add16" , menu: { items: [ { text: '选项1' }, { text: '选项2' }, { text: '选项3' , handler: function () { Ext.Msg.alert( "提示" , "来自菜单的消息" ); } } ] } }).showMenu(); Ext.create( "Ext.Button" , { renderTo: Ext.get( "div2" ), id: "bt5" , text: "上图标下菜单" , iconCls: "add16" , iconAlign: 'top' , menu: { items: [ { text: '选项1' }, { text: '选项2' }, { text: '选项3' , handler: function () { Ext.Msg.alert( "提示" , "来自菜单的消息" ); } } ] }, arrowAlign: 'bottom' }); |
三、带分割线的按钮
注意的地方:分割线的按钮来自于类Ext.SplitButton
[Js]1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | Ext.create( "Ext.button.Split" , { renderTo: Ext.get( "div3" ), text: "右图标下菜单" , iconCls: "add16" , iconAlign: 'right' , menu: { items: [ { text: '选项1' }, { text: '选项2' }, { text: '选项3' , handler: function () { Ext.Msg.alert( "提示" , "来自菜单的消息" ); } } ] }, arrowAlign: 'bottom' }); |
四、菜单式按钮
按钮式菜单Ext.CycleButton与下拉不同的是,它具备选中状态,当选中下拉项时,选中文本会相应变化。
[Js]1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | Ext.create( 'Ext.button.Cycle' , { renderTo: Ext.get( "div4" ), showText: true , prependText: '请选择:' , menu: { items: [{ text: '选项1' , checked: true }, { text: '选项2' }, { text: '选项3' }] }, changeHandler: function (btn, item) { Ext.Msg.alert( '修改选择' , item.text); } }); |
四、按钮组合
定义了一组按钮,并可以控制按钮排版。
[Js]1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Ext.create( "Ext.ButtonGroup" ,{ renderTo: Ext.get( "div5" ), title: "按钮组合" , columns: 3, //defaultType:'splitbutton', items: [{ text: '按钮1' , iconCls: 'add16' , scale: 'large' , rowspan: 2 }, { text: '按钮2' , iconCls: 'add16' , rowspan: 2, scale: 'large' }, { text: '按钮3' , iconCls: 'add16' }, { xtype: 'splitbutton' , text: '分割线按钮' , iconCls: 'add16' , menu: [{ text: '菜单1' }] }] }); |
作者:李盼(Lipan)
出处:[Lipan] (http://www.cnblogs.com/lipan/)
版权声明:本文的版权归作者与博客园共有。转载时须注明本文的详细链接,否则作者将保留追究其法律责任。
出处:[Lipan] (http://www.cnblogs.com/lipan/)
版权声明:本文的版权归作者与博客园共有。转载时须注明本文的详细链接,否则作者将保留追究其法律责任。
分类:
JS
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库