DevExpress XtraGrid单元格上的十进制数字

时间:2016-04-01 18:12:05

标签: vb.net devexpress decimal-point

我有一个DevExpress XtraGrid控件,其中我想在其中一个单元格中放入一个十进制数字,但是当我尝试从一个单元格跳转到另一个单元格时它不会让我,除非我再次将数字的值更改为整数。 我已经从设计中修改了这些属性:

[Image of designer]

并且没有任何反应,同样在Form.Load事件中,我以编程方式设置此属性,但似乎只是没有工作。

colnBase.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric
colnBase.DisplayFormat.FormatString = "{0:N4}"

我查看了DevExpress论坛,但我找不到答案,这是我在这里的第一个问题,所以如果你们中的任何人能帮助我,我会非常感激。

2 个答案:

答案 0 :(得分:0)

您在基础数据源中使用了错误类型的值。 nBase字段中的值必须是浮点数类型之一,例如SingleDoubleDecimal等。
这是一个例子:

Dim table = New DataTable()

table.Columns.Add("ID", GetType(Int32))
table.Columns.Add("Value", GetType(Single)) '<= If you change the type to Int32
' then you will not be able to write floating-point number into your cell

table.Rows.Add(0, 0)
table.Rows.Add(1, 1.1)

gridControl.DataSource = table

gridView1.PopulateColumns()

Dim displayFormat = gridView1.Columns("Value").DisplayFormat
displayFormat.FormatType = FormatType.Numeric
displayFormat.FormatString = "{0:N4}"

答案 1 :(得分:0)

我解决了“问题”,错误是我从View收取数据并且所有产品记录都返回为0

select 0 as data1, 0 as data2 from Table

但似乎SQL将数字作为Integer返回,即使在DataTable和XtraGrid中声明为Decimal或Numeric,我也无法修改XtraGrid中的值。

我这样修好了:

select convert(decimal(18,4),0) as data1, convert(decimal(18,4),0) as Data2 from Table

感谢各位回答,我希望其他人能从我的错误中受益。