KendoUI网格小数列

19

我有一个列用于体重(以千克为单位)。当用户单击它时,我需要让他们能够输入带有3位小数的十进制数字。

我的问题是,目前它只允许他们输入2位小数,但显示为3位。你可以输入很多小数位的数字,但当保存时会将其舍入到2位小数。

我的列设置如下:

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

我尝试了几件事情,但没有一件有效。

1个回答

58

几个问题(据我所知):

  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
            });
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接