Extjs 只显示年月的控件

 

Example:

this.yearMonth = new Ext.form.DateField({
    name : 'YEAR_MONTH',
    format : 'Y-m',
    editable : false,
    allowBlank : false,
    maxValue : new Date(),
    plugins: 'monthPickerPlugin',
    listeners : {
        scope : this,
        'select' : function(dft){
        }
    }
});
View Code

 monthPickerPlugin.js: 

 1 /*!
 2  * Copyright(c) 2009 Costin Bereveanu, KEYPOINT SOLUTIONS
 3  * costin@keypoint.ro
 4  * http://www.keypoint.ro/ext/extensions/license.txt
 5  */
 6 Ext.ux.MonthPickerPlugin = function() {
 7     var picker;
 8     var oldDateDefaults;
 9 
10     this.init = function(pk) {
11         picker = pk;
12         picker.onTriggerClick = picker.onTriggerClick.createSequence(onClick);
13         picker.getValue = picker.getValue.createInterceptor(setDefaultMonthDay).createSequence(restoreDefaultMonthDay);
14         picker.beforeBlur = picker.beforeBlur.createInterceptor(setDefaultMonthDay).createSequence(restoreDefaultMonthDay);
15     };
16 
17     function setDefaultMonthDay() {
18         oldDateDefaults = Date.defaults.d;
19         Date.defaults.d = 1;
20         return true;
21     }
22 
23     function restoreDefaultMonthDay(ret) {
24         Date.defaults.d = oldDateDefaults;
25         return ret;
26     }
27 
28     function onClick(e, el, opt) {
29         var p = picker.menu.picker;
30         p.activeDate = p.activeDate.getFirstDateOfMonth();
31         if (p.value) {
32             p.value = p.value.getFirstDateOfMonth();
33         }
34 
35         p.showMonthPicker();
36         
37         if (!p.disabled) {
38             p.monthPicker.stopFx();
39             p.monthPicker.show();
40             
41             p.mun(p.monthPicker, 'click', p.onMonthClick, p);
42             p.mun(p.monthPicker, 'dblclick', p.onMonthDblClick, p);
43             p.onMonthClick = p.onMonthClick.createSequence(pickerClick);
44             p.onMonthDblClick = p.onMonthDblClick.createSequence(pickerDblclick);
45             p.mon(p.monthPicker, 'click', p.onMonthClick, p);
46             p.mon(p.monthPicker, 'dblclick', p.onMonthDblClick, p);
47         }
48     }
49 
50     function pickerClick(e, t) {
51         var el = new Ext.Element(t);
52         if (el.is('button.x-date-mp-cancel')) {
53             picker.menu.hide();
54         } else if(el.is('button.x-date-mp-ok')) {
55             var p = picker.menu.picker;
56             p.setValue(p.activeDate);
57             p.fireEvent('select', p, p.value);
58         }
59     }
60 
61     function pickerDblclick(e, t) {
62         var el = new Ext.Element(t);
63         if (el.parent()
64             && (el.parent().is('td.x-date-mp-month')
65             || el.parent().is('td.x-date-mp-year'))) {
66 
67             var p = picker.menu.picker;
68             p.setValue(p.activeDate);
69             p.fireEvent('select', p, p.value);
70         }
71     }
72 };
73 Ext.preg('monthPickerPlugin', Ext.ux.MonthPickerPlugin);
View Code

 效果图:

具体事例参考:http://www.keypoint.ro/ext/

 

转载于:https://www.cnblogs.com/h07061108/archive/2013/06/13/Extjs-monthyear.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值