当DefaultCellStyle.Format数据为空时显示空单元格设置
问题描述:
我有一个datagridview。 dgv的数据源是对象的“ReadOnlyCollection”。 'ReadOnlyCollection'中对象的属性之一是可以为空的'DateTime'。我正在试图做的是显示空白小区的情况下“日期时间”为空,但应用不同的格式的日期时间列,这样做:当DefaultCellStyle.Format数据为空时显示空单元格设置
TimeOutColumn.DefaultCellStyle.Format = "MM/dd/yyyy HH:mm";
唯一的问题是,将所有我空的条目到DateTime.Min值。
'history'是ReadOnlyCollection。 下面是当前的代码:
'DataGridViewTextBoxColumn TimeOutColumn = new DataGridViewTextBoxColumn();
TimeOutColumn.DataPropertyName = "timeout";
TimeOutColumn.HeaderText = "Time Out";
ddgGHistory.Columns.Add(BadgeTypeIDColumn);
ddgGHistory.Columns.Add(EmployeeColumn);
ddgGHistory.Columns.Add(TimeInColumn);
ddgGHistory.Columns.Add(TimeOutColumn);
ddgGHistory.DataSource = history
ddgGHistory.Columns[3].DefaultCellStyle.Format = "MM/dd/yyyy HH:mm";
ddgGHistory.Columns[3].DefaultCellStyle.NullValue = "";
答
由于DateTime
是一个非空的对象,它必须有一个值。但是,可以通过将DateTime
声明为可以为空的DateTime
来使DateTime
可以为空。
以下是不可空的日期时间,并将始终有一个值。
DateTime dt = new DateTime();
然而,可以由类型之后加入?
声明为空。
DateTime? nullable_dt = new DateTime?();
假设nullable_dt
已经被设置为null
,所述datagridview
将显示一个空单元格,其中来自nullable_dt
值已被分配。
答
batchMembersDataGridView.Rows[e.RowIndex].Cells[16].Value = DateTime.MinValue;
if ((DateTime)(batchMembersDataGridView.Rows[e.RowIndex].Cells[16].Value) == DateTime.MinValue)
{
dataGridViewTextBoxColumn12.DefaultCellStyle.Format = ("");
}
给你的代码一些上下文和格式 – Rafael 2012-10-15 04:22:15