我有一个DevExpress XtraGrid控件,其中我想在其中一个单元格中放入一个十进制数字,但是当我尝试从一个单元格跳转到另一个单元格时它不会让我,除非我再次将数字的值更改为整数。 我已经从设计中修改了这些属性:
[
并且没有任何反应,同样在Form.Load事件中,我以编程方式设置此属性,但似乎只是没有工作。
colnBase.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric
colnBase.DisplayFormat.FormatString = "{0:N4}"
我查看了DevExpress论坛,但我找不到答案,这是我在这里的第一个问题,所以如果你们中的任何人能帮助我,我会非常感激。
答案 0 :(得分:0)
您在基础数据源中使用了错误类型的值。 nBase
字段中的值必须是浮点数类型之一,例如Single
,Double
,Decimal
等。
这是一个例子:
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
感谢各位回答,我希望其他人能从我的错误中受益。