Filter 尝试筛选具有以下格式的剑道网格列

Filter 尝试筛选具有以下格式的剑道网格列,filter,kendo-ui,grid,format,Filter,Kendo Ui,Grid,Format,我有一个剑道网格,带有一个数字列,格式仅显示小数点后1位。网格将正确地向上或向下舍入,并显示正确的小数位数。我遇到的问题是,如果我尝试对该列进行筛选,则筛选使用的是数据集中的实际值,而不是舍入的显示值。例如,如果数据集的值为11.61,则该值将显示为11.6。如果我在过滤器中使用11.6和一个equals,网格将不显示任何记录。我必须输入11.61才能让过滤器正常工作。我已经创建了一个dojo示例,说明了这一点 谢谢, Eric最简单的方法是对数据集中的数字进行四舍五入,而不是在客户端进行四舍五

我有一个剑道网格,带有一个数字列,格式仅显示小数点后1位。网格将正确地向上或向下舍入,并显示正确的小数位数。我遇到的问题是,如果我尝试对该列进行筛选,则筛选使用的是数据集中的实际值,而不是舍入的显示值。例如,如果数据集的值为11.61,则该值将显示为11.6。如果我在过滤器中使用11.6和一个equals,网格将不显示任何记录。我必须输入11.61才能让过滤器正常工作。我已经创建了一个dojo示例,说明了这一点

谢谢,
Eric

最简单的方法是对数据集中的数字进行四舍五入,而不是在客户端进行四舍五入。如果需要同时使用原始值和舍入值,还可以将它们发送到客户端(仅向用户显示舍入列)

另一个选择是实现您自己的数据源过滤逻辑。奇怪的是,剑道文档仅指字符串,似乎不允许(正式)函数。然而,如果你用谷歌搜索它,你会发现很多人已经成功地创建了自己的逻辑(见下图)

基本上,您必须手动设置过滤器,如下所示:

dataSource.filter([{
    field: 'YourField',
    operator: function (dataItem, filterValue) {
        //Untested... just make sure to return true if the dataItem match your custom filter logic
        return filterValue.toFixed(1) == dataItem;
    },
    value: 16.1
}]);
主要的挑战是找到合适的事件,用您自己的过滤器替换用户创建的过滤器