【问题标题】:How to change move interval in EXTJS calendar?如何更改 EXTJS 日历中的移动间隔?
【发布时间】:2021-07-12 19:22:13
【问题描述】:

如何更改EXTJS日历(现代工具包)中的移动间隔?

我想要一个周视图并将值更改 30 天。

默认情况下,此移动间隔设置为 7 天。此外,还有一个属性getMoveInterval 返回要移动的单位和要移动的单位数量{unit: "d", amount: 7}。但是,没有setMoveInterval 这样的东西。

在理想情况下,我希望这个配置为{unit: "m", amount: 1}

我尝试更改 valuechange 周事件视图中的值:

valuechange: function (a){
    //some calculations to calculate newDate;
    a.setValue(newDate);
}       

但后来我陷入了无限循环:

Uncaught RangeError: Maximum call stack size exceeded

另一方面,我没有看到任何其他合适的方法来检测更改显示的日期间隔。

【问题讨论】:

    标签: extjs calendar


    【解决方案1】:

    您只能通过在一周或一个月内覆盖以下类来做到这一点(工作周具有相同的功能......):

    Ext.define('MyApp.overrides.calendar.view.Week', {
        override: 'Ext.calendar.view.Week',
    
        privates: {
            getMoveInterval: function() {
                var D = Ext.Date;
                return {
                    unit: D.DAY,
                    amount: 30    // D.DAYS_IN_WEEK
                };
            }
        }
    });
    
    Ext.define('MyApp.overrides.calendar.view.Month', {
        override: 'Ext.calendar.view.Month',
    
        privates: {
            getMoveInterval: function() {
                return {
                    unit: Ext.Date.MONTH,
                    amount: 6            // 1
                };
            }
        }
    });
    

    因为getMoveInterval 是一个私有函数,您必须照此重写它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-02
      • 1970-01-01
      • 1970-01-01
      • 2015-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-18
      相关资源
      最近更新 更多