19

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

我遇到的问题是目前它只允许他们把它放在 2 个地方,但显示为 3 个地方。您可以输入一个数字到许多小数位,但保存时会将其四舍五入到 2 位。

我的专栏是这样设置的:

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

我已经尝试了一些东西,但没有任何工作。

4

1 回答 1

58

几个问题(afaik):

  1. 列中的格式未定义为,n4而是定义为{0:n4}.
  2. 格式不仅适用于数字的格式,还可能包含一些文本。前任:{0:n4} Kg.
  3. 对于数字列,不能将属性指定为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
            });
}
于 2013-03-24T19:04:13.590 回答