Javascript 当数据源数据使用4位小数时,使用2位小数进行剑道网格过滤
我有一个剑道网格显示美元金额,但数据源中的数据返回4位小数 数据源数据如下所示:Javascript 当数据源数据使用4位小数时,使用2位小数进行剑道网格过滤,javascript,kendo-ui,kendo-grid,kendo-datasource,Javascript,Kendo Ui,Kendo Grid,Kendo Datasource,我有一个剑道网格显示美元金额,但数据源中的数据返回4位小数 数据源数据如下所示: { totalDollars: 1513.1548 }, { totalDollars: 158.2903 }, { ... } 所以为了正确显示数字,我使用列格式 columns: [ { field: 'totalDollars', format: '{0:c2}' }, { ... } ] 但是现在我想过滤这个专栏。如果我使用进行筛选等于“159.29,它将失败 我使用了4位小数和colu
{ totalDollars: 1513.1548 },
{ totalDollars: 158.2903 },
{ ... }
所以为了正确显示数字,我使用列格式
columns: [
{ field: 'totalDollars', format: '{0:c2}' },
{ ... }
]
但是现在我想过滤这个专栏。如果我使用进行筛选等于“
159.29
,它将失败
我使用了4位小数和column.filterable.ui
:
columns: [
{
field: 'totalDollars',
format: '{0:c2}',
filterable: {
ui: function(e) {
element.kendoNumericTextBox({
format: "n4",
decimals: 4
});
}
}
}
]
但这没有帮助,因为用户不知道最后2位小数。所以我需要它在过滤时最多只使用2个小数
这可能吗
-请注意,使用
7133.03
按“单成本”进行过滤不起作用,但7133.0332
起作用。我想让7133.03
生效。我已经为您更新了小提琴
但实际上,您可以通过添加以下内容来覆盖所返回值的默认解析器:
DefaultMonoCPP: {
editable: false,
type: "number",
parse: function(e)
{
console.log(e);
return kendo.parseFloat(kendo.toString(e,"c2"));
}
我添加了console.log行只是为了向您显示实际传入的值是数据源提供的原始值
这需要一点发现,但此链接应该有帮助:
编辑:
根据评论更新答案
为便于将来参考,请使用此链接:
Ahhh。我刚在这里碰到一只虫子。转到您的JSFIDLE,尝试过滤“Mono成本”并执行“小于1000”。看起来像剑道迷,但我不确定。最新的剑道也是如此。我刚刚做了一个更新。如果这是工作,我会更新的答案,以反映这一变化为你。光滑!你怎么知道的?!?!?非常感谢。添加了数字解析和更新答案的链接。很高兴这有帮助。