ExtJS Trigger
2015-08-02 19:50
621 查看
本节的内容将介绍Trigger的用法。在所有控件中,我们很少直接使用Trigger,但是我们经常用到他的子类:combobox、date、file等都是它的子类(combobox和date是picker的子类,而picker继承自Trigger)。
更多的ExtJS教程,点击进入>>《ExtJS 教程目录》,持续更新中……
如果要直接使用Trigger,需要定义一个它的子类,并在子类中重写onTriggerClick方法。
我们在form中使用这个控件:
效果如下:
![](http://www.qeefee.com/Upload/wlw/4917252858896261023.png)
它默认有一个下拉箭头,这可以通过设置样式表来设置:
然后在样式表中添加样式:
设置完成以后刷新页面,效果如下:
![](http://www.qeefee.com/Upload/wlw/4939949493396727059.png)
如果我们要在form中选择一个字段,我们可以重写onTriggerClick:
![](http://www.qeefee.com/Upload/wlw/4797275926060390917.png)
Trigger按钮效果
![](http://b.hiphotos.baidu.com/zhidao/wh%3D600%2C800/sign=3e1cd10b8882b9013df8cb3543bd854f/71cf3bc79f3df8dc20e075bdcf11728b47102839.jpg)
另外 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
![](http://images.cnitblog.com/blog/87548/201309/02104507-8a4eb0e29143445280d38185994ee323.png)
更多的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' }
效果如下:
![](http://www.qeefee.com/Upload/wlw/4917252858896261023.png)
它默认有一个下拉箭头,这可以通过设置样式表来设置:
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; }
设置完成以后刷新页面,效果如下:
![](http://www.qeefee.com/Upload/wlw/4939949493396727059.png)
如果我们要在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在线示例![](http://www.qeefee.com/Upload/wlw/4797275926060390917.png)
extjs combobox 自动展开下拉框
在按钮监听的function中 combo.expand();
Trigger按钮效果
![](http://b.hiphotos.baidu.com/zhidao/wh%3D600%2C800/sign=3e1cd10b8882b9013df8cb3543bd854f/71cf3bc79f3df8dc20e075bdcf11728b47102839.jpg)
另外 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
![](http://images.cnitblog.com/blog/87548/201309/02104507-8a4eb0e29143445280d38185994ee323.png)
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!'); } }] }); });
相关文章推荐
- Javascript-基础知识(3)
- 2015.8.2js-19(完美运动框架)
- JavaScript-基本知识(2)
- JavaScript对象的使用
- Javascript-基础知识(1)
- ABP之Javascript生成
- velocity 直接支持json格式数据
- 高性能javascript读书笔记(三.DOM 编程2)
- 高性能javascript读书笔记(三.DOM 编程1)
- javascript中的美元符号$是做什么的?
- [转]JS弹出确认/取消对话框
- JSON3:JSON与XML数据之间的转换
- [LeetCode][JavaScript]Anagrams
- base64等文本格式
- ArcGIS for Service中JavaScript预览在内网环境无法使用
- 在javascript当中发现了一个没有调用者的方法。
- JSON1:JSON的认识
- 利用JS实现的根据经纬度计算地球上两点之间的距离
- Angular JS
- 06_桥接模式