Kendo网格数字截断为2位小数。如何使其尊重用户输入的内容?

时间:2015-07-08 15:36:39

标签: javascript kendo-ui telerik kendo-grid

在此Kendo Grid demo中,如果您编辑" Stock in the Stock"并添加多个小数(尝试2.203848),它将它截断为2.20。看起来这是默认行为。

我知道我们可以使用String timestamp = "29-JAN-2014 01:00:00.000 PM EUROPE/PARIS"; DateFormat df = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss.SSS aa ZZZ"); Date dateFormatted = null; try { dateFormatted = df.parse(timestamp); } catch (ParseException execption) { execption.printStackTrace(); } 指定小数格式,例如。

但如果小数位数是 unknown 或者可能会有所不同呢?有没有办法让网格使用用户输入的确切数字?

2 个答案:

答案 0 :(得分:5)

要在网格中进行此操作,您需要使用自定义编辑器。将小数位数设置为足够高的数字,并确保您的字段格式有足够的位置。这个伟大的答案here有点调整解决了你的问题。

function numberEditor(container, options) {
$('<input name="' + options.field + '"/>')
        .appendTo(container)
        .kendoNumericTextBox({
            decimals: 8,
            step    : 0.01
        });
}

$("#grid").kendoGrid({
    dataSource: dataSource,
    navigatable: true,
    pageable: true,
    height: 550,
    toolbar: ["create", "save", "cancel"],
    columns: [
        "ProductName",
        { field: "UnitPrice", title: "Unit Price", format: "{0:c}", width: 120 },
        { field: "UnitsInStock", title: "Units In Stock", format: "{0:0.#########}", width: 120, editor: numberEditor },
        { field: "Discontinued", width: 120 },
        { command: "destroy", title: "&nbsp;", width: 150 }],
    editable: true
});

});

答案 1 :(得分:0)

kendo ui grid支持直接调用kendo.format()时可以使用的任何格式。该文档可用here

您正在寻找的格式是

std::vector<Base>

您需要将其填充到您想要支持的小数位数。