我有一列重量(公斤)。当用户单击它时,我需要使他们能够使用3位十进制数。

我的问题是目前仅允许他们将其放置在2个位置,但显示为3个位置。您可以输入数字到小数点后一位,但是保存时会将其四舍五入到两位。

我的专栏设置如下:

...
{
        field: "weight",
        title: "Weight",
        width: 40,
        format: "n4",
        decimals: 4,
        step: 0.001,
        template: "#= weight.toFixed(3)+'kg' #"
}
...

我已经尝试了一些方法,但是没有任何效果。

最佳答案

几个问题(afaik):

列中的

  • 格式未定义为n4,但定义为{0:n4}
  • 格式不仅用于数字格式,而且还可能包含一些文本。例如:{0:n4} Kg.
  • 对于数字列,无法将属性指定为decimalsstep,因此您应该定义编辑器功能。

  • 此外,我不理解您的小数和舍入问题。

    我建议将列定义为:
    {
        field: "weight",
        title: "Weight",
        width: 40,
        editor: numberEditor,
        format: '{0:n3} Kg.'
    }
    

    (假设您希望使用三位小数精度),并将numberEditor定义为:
    function numberEditor(container, options) {
        $('<input name="' + options.field + '"/>')
                .appendTo(container)
                .kendoNumericTextBox({
                    format  : "{0:n3}",
                    decimals: 3,
                    step    : 0.001
                });
    }
    

    10-07 21:57