我有一个kendo网格,我的数据源数据返回未知小数位数。所以我在数据源上使用解析函数来补偿它。
DefaultMonoCPP: {
editable: false,
type: "number",
parse: function(e) {
return kendo.parseFloat(kendo.toString(e,"p4"));
}
}
现在当我过滤时,我不希望它自动将百分比乘以100.所以我在列上设置了filterable
。
{
field: "DefaultMonoCPP",
title: "Mono Cost",
format: '{0:p4}',
filterable: {
ui: function(e) {
e.kendoNumericTextBox({
//format: "{0:p4}",
//format: "p4",
format: "##.0000 \\%",
decimals: 4
});
}
}
}
但这会弄乱过滤后的数字(1.2700%=> 1.27)。所以过滤失败了。
JSFiddle澄清:http://jsfiddle.net/dmathisen/mecny50f/
有没有办法让解析和可过滤的工作一起正确?
答案 0 :(得分:1)
我的建议是将数字文本框格式化为百分比,并将步长设置为0.01,使其一次递增/递减1%。如果您担心用户输入百分比作为整数,请在更改事件中处理。
e.kendoNumericTextBox({
format: '{0:p4}',
step: 0.01,
decimals: 4,
change: function () {
var val = this.value();
if (val > 1) {
this.value(val / 100);
this.trigger("change");
}
}
});