zoukankan      html  css  js  c++  java
  • ExtJs4 笔记 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'}]
         }]
     });
  • 相关阅读:
    webpack学习_管理输出(管理资源插件)
    vue路由
    vue动态组件,组件缓存
    vue组件间传参
    模块化
    安装Vue脚手架,创建Vue项目
    Vue常用指令
    VUE概述
    小程序调用微信支付接口
    Android音视频开发之-WebRTC技术实践
  • 原文地址:https://www.cnblogs.com/webu/p/2733415.html
Copyright © 2011-2022 走看看