DataView.RowFilter和“N2”格式的数字 - 如何实现“你所看到的是你过滤的内容”?

时间:2016-10-27 15:09:52

标签: c# formatting filtering dataview rowfilter

我有一列十进制数字,使用N2格式显示。这意味着数字12000.4656887将显示为12,000.47

enter image description here

同时,我有一个用户可以输入文本的文本框,我根据用户指定的过滤器设置了DataView.RowFilter。问题是用户看到号码12,000.47,并且他键入12,000.47,但当然,他没有看到任何内容,因为该号码实际上是12000.4656887

enter image description here

从用户的角度来看,这是一个错误。所以我需要根据文本表示进行过滤,而不是根据基础值进行过滤。同时我不想更改DataTable中的基础值。

我尝试使用view.RowFilter = "Convert([number], System.String, 'N2') LIKE '12,000.47'";之类的内容,但它不起作用 - 只会引发异常Invalid number of arguments: function Convert(),这意味着Convert不接受格式参数。 此外,我无法通过更改过滤器值来解决此问题,因为这需要将其从12000.47“取消”到12000.4656887。唯一的方法是在过滤时对值进行舍入。

0 个答案:

没有答案