ExtJs4 笔记(5) Ext.Button 按钮

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/
版权声明:本文的版权归作者与博客园共有。转载时须注明本文的详细链接,否则作者将保留追究其法律责任。
分类:  JS
9
0
(请您对文章做出评价)
« 上一篇: ExtJs4 笔记(4) Ext.XTemplate 模板
» 下一篇: ExtJs4 笔记(6) Ext.MessageBox 消息对话框
posted @  2011-12-13 08:07  lipan 阅读( 26961) 评论( 11编辑  收藏
  
#1楼   2011-12-13 09:27  阵列式摄像机[未注册用户]
看到好多的代码,看的不是很明白啊
  
#2楼   2011-12-13 10:17  通用C#系统架构   
把效果图也贴上嘛,别那么吝色。
  
#3楼   2011-12-13 10:17  小渺   
楼主就是一颗正在崛起的新星,膜拜中……
  
#4楼 [ 楼主2011-12-13 10:36  lipan   
@C#通用权限管理系统组件
久仰大名,谢谢你的建议,下篇我会效果图分解的更详细些。
不知道可否直接在线展示,在文章中引用extjs库文件
  
#5楼 [ 楼主2011-12-13 11:52  lipan   
@小渺
过奖了,我只是现在时间很充裕,又不知道干什么,所以就多写几篇文章。
  
#6楼   2011-12-13 13:54  民工也Coding   
支持楼主大侠,学ext.js看什么 书 好啊?谢谢啊。。。
  
#7楼 [ 楼主2011-12-13 14:01  lipan   
@民工也外语
国内没有什么像样的书,你还不如看我的文章:)
  
#8楼   2011-12-13 16:36  yonghu86   
支持一下。
  
#9楼   2011-12-14 14:35  cr2121   
iconCls 后面怎么写?
  
#10楼 [ 楼主2011-12-14 15:39  lipan   
@cr2121
CSS样式类名,包含背景图片设置。
1
2
3
.add 16  {
     background-image url (images/add 16 .gif)  !important ;
}
  
#11楼   2012-08-16 22:14  put   
看了楼主写的东西,受益匪浅,好人啊,感谢……很想知道楼主学习extjs主要是看什么资料的,能否告知?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值