如何在 extjs 日期字段或日期选择器中访问更改月份事件

Posted

技术标签:

【中文标题】如何在 extjs 日期字段或日期选择器中访问更改月份事件【英文标题】:How can I access change month event in extjs datefield or in datepicker 【发布时间】:2012-07-08 03:12:17 【问题描述】:

我想要这样的东西:


  xtype:'datefield',
  editable:false,
  fieldLabel:'date',
  listeners:
    monthChange:function(picker)
      alert("selected month and year")
    
  

有什么改变月份的活动吗?如果没有,我该怎么写?

谢谢

【问题讨论】:

【参考方案1】:

这是扩展“Ext.date.Picker”的示例,因为没有“monthchange”事件:

Ext.define("YourCalendarPicker", 
    extend: "Ext.picker.Date",
    ...
    update : function(date, forceRefresh)
        var me = this,
            monthViewChange = me.isAnotherMonthView(date);
        me.callParent(arguments);
        if (monthViewChange)
            me.fireEvent("monthviewchange", me, date, me.activeDate);
        
        return me;
    ,
    ...

    /**
     * return true if the given date is in a different month view of the actual calendar date
     * @param Date date
     * @return Boolean
     */
    isAnotherMonthView: function(date)
        var activeDate = this.activeDate || date;
        return date.getYear() != activeDate.getYear() || date.getMonth() != activeDate.getMonth();
    
;

【讨论】:

【参考方案2】:

确实没有monthChange事件,但是您可以在有人选择新日期时收听,然后也许您可以比较月份以查看它是否发生了变化? http://docs.sencha.com/ext-js/4-1/#!/api/Ext.picker.Date-event-select

如果这不是您要解决的问题,请提供更多信息。

【讨论】:

以上是关于如何在 extjs 日期字段或日期选择器中访问更改月份事件的主要内容,如果未能解决你的问题,请参考以下文章

如何检查日期范围选择器中的日期是不是更改?

在材料ui的日期选择器中更改formatDate

如何在引导日期选择器中更改日期格式(dd-mmm-yyyy)

Extjs 4.2 日期字段只显示年和月没有日期

如何在日期选择器中显示当前日期

如何更改日期选择器中的文本大小?