0

私はこのようなものが欲しい:

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

月替わりのイベントはありますか?そうでない場合は、どのように書くことができますか?

ありがとう

4

2 に答える 2

3

これは、「monthchange」イベントがないため、「Ext.date.Picker」を拡張する例です。

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();
    }
};
于 2014-01-13T12:44:26.117 に答える
1

monthChangeイベントは正確にはありませんが、誰かが新しい日付を選択したときに聞くことができます。月を比較して、変更されたかどうかを確認できますか? http://docs.sencha.com/ext-js/4-1/#!/api/Ext.picker.Date-event-select

これが解決しようとしている問題でない場合は、もう少し情報が役立ちます。

于 2012-07-09T04:36:06.650 に答える