我有一个链接到DataTable的DataGridView . 表中的单元格设置为十进制 .
在没有相关数据的情况下,我希望在“power”列(#2)而不是值中显示“No Data”文本 .
为此,我做了以下事情:
foreach (DataGridViewRow row in resultsDataGrid.Rows)
if ((int)row.Cells["DataYN"].Value == 1)
{
row.Cells["Power"].ValueType = typeof(String);
row.Cells["Power"].Value = "No Data";
}
编译时,我收到一条错误消息“No Data”不是Decimal的有效值....' .
单元格值类型已明确设置并显示为字符串,但编译器认为它仍为十进制 . 我尝试了各种铸造和转换,但无济于事 .
-
这是编译错误吗?
-
有解决方法吗?
samtal
1 回答
为什么不将"No Data"指定为单元格默认样式(http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcellstyle.nullvalue.aspx)的NullValue属性,而不是实际尝试更改单元格的值 . 这将消除循环数据的需要,并应防止网格尝试将值转换为小数 .