ExtJS Trigger

本节的内容将介绍Trigger的用法。在所有控件中,我们很少直接使用Trigger,但是我们经常用到他的子类:combobox、date、file等都是它的子类(combobox和date是picker的子类,而picker继承自Trigger)。

更多的ExtJS教程,点击进入>>《ExtJS 教程目录》,持续更新中……

如果要直接使用Trigger,需要定义一个它的子类,并在子类中重写onTriggerClick方法。

Ext.define('Ext.ux.CustomTrigger', {
    extend: 'Ext.form.field.Trigger',
    alias: 'widget.customtrigger',

    // 重写 onTriggerClick
    onTriggerClick: function () {
        Ext.Msg.alert('Status', 'You clicked my trigger!');
    }
});

我们在form中使用这个控件:

{
    xtype: 'customtrigger',
    fieldLabel: '自定义Trigger',
    emptyText: 'click the trigger'
}

效果如下:

image

它默认有一个下拉箭头,这可以通过设置样式表来设置:

triggerCls: "ux-form-search-trigger"

然后在样式表中添加样式:

.ux-form-search-trigger { background: url(images/form/search-trigger.gif);}
.ux-form-search-trigger-over { background-position:-17px 0; }
.ux-form-search-trigger-click { background-position:-34px 0; }

设置完成以后刷新页面,效果如下:

image

如果我们要在form中选择一个字段,我们可以重写onTriggerClick:

onTriggerClick: function () {
    var me = this;
    var win = Ext.create("Ext.window.Window", {
        title: "兴趣选择",
        width: 300,
        height: 200,
        layout: "fit",
        items: [
            {
                xtype: "form",
                layout: "hbox",
                margin: "0 0 5 0",
                defaultType: "textfield",
                items: [
                    {
                        xtype: "checkboxgroup",
                        columns: 3,
                        vertical: true,
                        flex: 1,
                        items: [
                            { boxLabel: "阅读", name: "Interest", inputValue: "阅读" },
                            { boxLabel: "摄影", name: "Interest", inputValue: "摄影" },
                            { boxLabel: "音乐", name: "Interest", inputValue: "音乐" },
                            { boxLabel: "跳舞", name: "Interest", inputValue: "跳舞" }
                        ]
                    }
                ]
            }
        ],
        buttons: [
            {
                text: "确定", handler: function () {
                    var interest = win.down("form").getValues().Interest;
                    me.setValue(interest);
                    win.close();
                }
            }
        ]
    });
    win.show();
}

在线示例

>>点击进入Trigger在线示例

image


extjs combobox 自动展开下拉框

在按钮监听的function中
combo.expand();

 Trigger按钮效果


另外 triggerCls:文本框右侧的按钮样式,主要有4种:

x-form-clear-trigger     // the X icon  

x-form-search-trigger    // the magnifying glass icon  

x-form-trigger           // the down arrow (default for combobox) icon  

x-form-date-trigger      // the calendar icon (just in case) 


带清除按键的triggerfield

 Ext.onReady(function () {
Ext.create('Ext.form.FormPanel', {
title: 'Form with TriggerField',
bodyPadding: 5,
width: 350,
renderTo: Ext.getBody(),
items: [{
xtype: 'triggerfield',
selectOnFocus: true,
fieldLabel: 'Sample Trigger',
trigger1Cls: 'x-form-clear-trigger',
trigger2Cls: 'x-form-search-trigger',
onTrigger1Click: function () {
this.setValue('');
},
onTrigger2Click: function () {
Ext.Msg.alert('Status', 'You clicked search!');
}
}]
});
});

 




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值