Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当数据源数据使用4位小数时,使用2位小数进行剑道网格过滤_Javascript_Kendo Ui_Kendo Grid_Kendo Datasource - Fatal编程技术网

Javascript 当数据源数据使用4位小数时,使用2位小数进行剑道网格过滤

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

我有一个剑道网格显示美元金额,但数据源中的数据返回4位小数

数据源数据如下所示:

{ 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”。看起来像剑道迷,但我不确定。最新的剑道也是如此。我刚刚做了一个更新。如果这是工作,我会更新的答案,以反映这一变化为你。光滑!你怎么知道的?!?!?非常感谢。添加了数字解析和更新答案的链接。很高兴这有帮助。