转自:http://www.cnblogs.com/lipan/archive/2011/12/13/2274797.html

从本篇开始讲基础控件,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'}]
     }]
 });

89. Ext.Button 按钮的更多相关文章

  1. [转载]ExtJs4 笔记(5) Ext.Button 按钮

    作者:李盼(Lipan)出处:[Lipan] (http://www.cnblogs.com/lipan/)版权声明:本文的版权归作者与博客园共有.转载时须注明本文的详细链接,否则作者将保留追究其法律 ...

  2. ExtJs4 笔记(5) Ext.Button 按钮

    id="li2"></li> <li id="li3"></li> </ul> </div> ...

  3. Extjs.Button 按钮

    Extjs  Button 的简单使用 ,同时调用Ajax服务 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xh ...

  4. ext button 属性

    var buttonName = new Ext.Button({               id:"buttonName",               text:" ...

  5. button 按钮,结合onclick事件,验证和提交表单

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. 如何在MFC界面开发中响应Button按钮的Down和Up事件

    通过尝试有两种方案可以解决这个问题,第一种方案是通过PreTranslateMessage函数在调度消息之前对消息类型进行筛选,第二种方案是重载CButton类,在重载后的类CForTestButto ...

  7. 遭遇input与button按钮背景图失效不显示的解决办法

    笔者从事网页前端代码页面工程师已有多年,作为一个网页重构人员常常会遇到一些莫名其妙的DIV+CSS(正确的说法是XHTML+CSS)在 IE.FireFox火狐. 谷歌浏览器CHROME.苹果浏览器S ...

  8. button按钮

    button按钮只加类名不加type时,点击此按钮页面会刷新

  9. Unity3D NGUI 给button按钮添加单间事件

    Unity3D中, NGUI 给button按钮添加单间事件的方法很多,在这里只给推荐一种比较常用的方法. 推荐方法:使用UIListener. 1.给button组价添加上UIListener.选择 ...

随机推荐

  1. CSS——行高

    浏览器默认文字大小:16px 行高:是基线与基线之间的距离 行高=文字高度+上下边距 一行文字行高和父元素高度一致的时候,垂直居中显示. <!DOCTYPE html> <html& ...

  2. 第一个真正意义的jsp程序,连接msql数据库

    1. mysql数据库 :在百度上下一个安装包mysql-5.7.17.msi,只装服务即可,选择开发使用 2.建库,建表 mysql> create table  testdb; 导入相关建表 ...

  3. 【YOLO】只检测人

    一.修改源代码 cfg/coco.data classes= #修改成1 train = /home/pjreddie/data/coco/trainvalno5k.txt valid = coco_ ...

  4. js基本类型的包装对象

    var test = "test"; test.a = "hello"; console.log(test.a); 在JavaScript中,“一切皆对象”,数 ...

  5. 关于Staltstack

    saltstate服务搭建: cat /etc/hosts(master和minion都添加) 127.0.0.1   localhost localhost.localdomain localhos ...

  6. 2.Linux的用户、用户组、权限、文件系统管理及其网络配置

    2.1 Linux的用户及用户组 2.1.1 Linux的用户管理 用户账号管理包含以下三个方面: 用户账号的添加.删除.与修改 用户口令(密码)的管理 用户组的添加.删除管理 Linux系统中用户信 ...

  7. [Luogu] P4198 楼房重建

    题目描述 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些事件发生在一个 ...

  8. 30.IK分词器配置文件讲解以及自定义词库

    主要知识点: 知道IK默认的配置文件信息 自定义词库     一.ik配置文件     ik配置文件地址:es/plugins/ik/config目录     IKAnalyzer.cfg.xml:用 ...

  9. copy and rename a file multiple times using Matlab

    for file.txt***********n=10;fileinfo=importdata('file.txt');for i=1:nfilename=sprintf('file_%d.txt', ...

  10. java中的redis工具类

    1.redis基础类 package com.qlchat.component.redis.template; import javax.annotation.PostConstruct; impor ...