2012-04-19 109 views
1

我有一個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 = ""; 

回答

1

由於DateTime是一個非空的對象,它必須有一個值。但是,可以通過將DateTime聲明爲可以爲空的DateTime來使DateTime可以爲空。

以下是不可空的日期時間,並將始終有一個值。

DateTime dt = new DateTime(); 

然而,可以由類型之後加入?聲明爲空。

DateTime? nullable_dt = new DateTime?(); 

假設nullable_dt已經被設置爲null,所述datagridview將顯示一個空單元格,其中來自nullable_dt值已被分配。

0
batchMembersDataGridView.Rows[e.RowIndex].Cells[16].Value = DateTime.MinValue; 

        if ((DateTime)(batchMembersDataGridView.Rows[e.RowIndex].Cells[16].Value) == DateTime.MinValue) 
        { 
         dataGridViewTextBoxColumn12.DefaultCellStyle.Format = (""); 
        } 
+0

給你的代碼一些上下文和格式 – Rafael 2012-10-15 04:22:15

相關問題