javascript - Handsontable - 无法为自定义单元格设置千位分隔符

标签 javascript css numeric handsontable

我正在使用 Handsontable 库来编辑包含财务数据的电子表格。 我设置了自定义数字格式,以使用 ' '(空格)作为千位分隔符。

numeral.language('ru', {
    delimiters: {
        thousands: ' ',
        decimal: ','
    },
    abbreviations: {
        thousand: 'k',
        million: 'm',
        billion: 'b',
        trillion: 't'
    },
    ordinal: function (number) {
        return number === 1 ? 'er' : 'ème';
    },
    currency: {
        symbol: '€'
    }
});

一切正常,但在某些(具有自定义颜色和文本对齐)单元格中此设置不起作用。怎么了?

用于设置颜色和对齐的自定义单元格渲染器:

function sumCellRenderer(instance, td, row, col, prop, value, cellProperties) {
    Handsontable.renderers.TextRenderer.apply(this, arguments);
    td.style.background = '#FFFF88';
    td.style.textAlign = 'right';      
}

工作示例 http://jsfiddle.net/m2dxws5a/7/

底部的自定义单元格标有黄色。

最佳答案

当您应用自定义渲染器时,您会覆盖渲染器的类型,因此必须自行设置。如果您查看自己的代码,就会发现您正在使用 TextRenderer,正如您现在可能猜到的那样,这将呈现 text。在 Handsontable 中,数字是 numeric 类型,关联的渲染器是 NumericRenderer。所以,解决方案:

替换

Handsontable.renderers.TextRenderer.apply(this, arguments);

Handsontable.renderers.NumericRenderer.apply(this, arguments);

之后它应该可以工作了!

关于javascript - Handsontable - 无法为自定义单元格设置千位分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31098653/

相关文章:

Javascript根据类名中的数字动态设置宽度

html - 链接 img id ="logo"

javascript - .show() 无法正常工作(没有动画,没有更多代码)

css - 还有另一种方法可以用sass写这个吗?

javascript - 为什么我无法添加到数字对象属性?

javascript - 自定义 jQuery 渐变颜色选择器 - 使其成为 'user-friendly'

javascript - nodejs和web浏览器中的单线程是否相同?

c# - 使用 C# 从字母数字字符串中拆分数字部分

iphone - 如何从数字键盘上删除添加的完成按钮

javascript - 不使用ajax将html页面的正文加载到另一个页面中