我需要以十进制(2)格式在我的kendoGrid中显示数字。但到目前为止似乎没有任何工作。所以我需要帮助理解为什么。我搜索论坛但很简单 '将类型字段设置为数字并使用格式:" {0:n2}"'不起作用。我从JSON获取数据,其中字段值有许多小数。所以我希望它们在我的kendoGrid中只有2位小数。
这是我的代码,我失败了尝试让它运作
var gridStavke = $("#gridItems").kendoGrid({
scrollable: true,
sortable: true,
resizable: true,
dataSource: {
schema: {
model: {
fields: {
PDV25 : { type : "number" },
PDV3 : { type : "number" },
PDV28 : { type : "number" }
}
}
}
},
height: $(document).height() - 190,
columns: [
{field: "product", title: "Product"},
{field: "price", title: "Price"},
{field: "base", title: "Base"},
{field: "count", title: "Count",footerTemplate:"total"},
{field: "PDV25", title: "PDV 25%",format:"{0:n2}"},
{field:"PDV3",title:"PDV 3%",format:"{0:n2}", editor:function(container,options){$('<input />').appendTo(container).kendoNumericTextBox({format:"n",decimals:2});}},
{field: "PDV28", title: "PDV 28%", editor:numberEditor}
]
}).data("kendoGrid");
function numberEditor(container, options) {
$('<input name="' + options.field + '"/>')
.appendTo(container)
.kendoNumericTextBox({
format : "{0:n2}",
decimals: 2,
step : 0.01
});
}
JSON
"data":[
{
"product":"Med",
"price":"40.3",
"count":"1",
"base":"238.42628640776698",
"PDV25":"8.059999999999999",
"PDV28":"54.68750000000001",
"PDV3":"0.32621359223300966"
},
{
"product":"Sir",
"price":"250",
"count":"1",
"base":"238.42628640776698",
"PDV25":"8.059999999999999",
"PDV28":"54.68750000000001",
"PDV3":"0.32621359223300966"
},
{
"product":"Mlijeko",
"price":"11.2",
"count":"2",
"base":"238.42628640776698",
"PDV25":"8.059999999999999",
"PDV28":"54.68750000000001",
"PDV3":"0.32621359223300966"
}
]
编辑:我找到了问题的解决方案。我需要添加模板:&#39;#= parseFloat(namefield).toFixed(2)#&#39;在{field ...}参数中。
答案 0 :(得分:0)
您遇到此问题是因为您没有设置正确的json数据源。在双引号中的Json值(&#34;&#34;)表示字符串而不是数字, 数字应该没有引号(&#34;&#34;)。这就是为什么数字格式不适用于它的原因。所以改变你的json它会起作用。
有效的json应该是这样的:
"data":[
{
"product":"Med",
"price":40.3,
"count":"1",
"base":238.42628640776698,
"PDV25":8.059999999999999,
"PDV28":54.68750000000001,
"PDV3":0.32621359223300966
},..
]