首页 > 解决方案 > Extjs 7.0 日历标题未与列对齐

问题描述

使用 Extjs 7.0 中的 Calendar 组件,我们注意到如果语言设置为荷兰语,标题单元格不会与其列正确对齐:

日历

检查源代码时,我发现在单元格 html 中添加了这些值;在 Ext.calendar.header.Base 中,在 setHeaderText 函数中存在以下代码:

var me = this,
            D = Ext.Date,
            value = me.getValue(),
            format = me.getFormat(),
            domFormat = me.domFormat,
            cells = me.cells,
            len = cells.length,
            useDates = me.useDates,
            cell, i;

        if (!value) {
            return;
        }

        value = D.clone(value);

        for (i = 0; i < len; ++i) {
            cell = cells[i];

            if (useDates) {
                cell.setAttribute('data-date', D.format(value, domFormat));
            }

            cell.setAttribute('data-day', value.getDay());
            cell.innerHTML = D.format(value, format);
            value = D.add(value, D.DAY, 1);
        }

innerHtml 是通过格式化 Date(D) 对象来设置的,这会产生当天的 3 个字符。如果您将其更改为仅设置一个 4 字符值,例如 cell.innerHTML = 'Test',则标题排列得很好:

测试

但由于某种原因,这在使用 D.format 值时不起作用。如果有人知道是什么原因造成的,我很想听听。

由于某种原因,我的包无法再加载,我似乎无法测试这是否在另一种语言中也会出错。

标签: extjslocalizationcalendarheaderextjs7

解决方案


您可以设置(或修复)本地化覆盖本地化常量。日历使用Ext.Date.dayNamesExt.Date.getShortDayName().

您可以在本地化包中看到的所有常量列表。

小提琴示例


推荐阅读