2012-04-27 57 views
1

顯示日期時間最小值:不給gridview的

public class Customer 
{ 
    public int Id { get; set; } 
    public string FirstName { get; set; } 
    public DateTime Birthdate { get; set; } 
} 

我有一些地方生日均未進入,所以當我綁定的GridView它榜單顯示DateTime.MinValue。如果生日是DateTime.MinValue,有什麼不同的方式在gridview中顯示空白?

回答

9

除非被映射到數據庫,我會讓它可空:

public class Customer 
{ 
    public int Id { get; set; } 
    public string FirstName { get; set; } 
    public DateTime? Birthdate { get; set; } 
} 

編輯:

如果映射,那麼我只是做一個只讀空值吧:

public DateTime? BirthdateDisplay 
{ 
    get 
    { 
     if (this.Birthdate == default(DateTime)) 
     return null; 
     else 
     return this.Birthdate; 
    } 
} 
3

您可以向客戶添加一個名爲BirthDateStr的附加屬性。

public class Customer 
{ 
    public int Id { get; set; } 
    public string FirstName { get; set; } 
    public DateTime Birthdate { get; set; } 
    public string BirthDateStr 
    { 
     get 
     { 
      if (Birthdate != DateTime.MinValue) 
       return Birthdate.ToString(); 
      else 
       return ""; 
     } 
} 

很明顯,你可以做任何你格式化想在BirthDateStr做吸氣,以使你的格式相匹配。

1

或者,您也可以更新您的前端GridView控件顯示隱藏了DateTime.MinValue如下:

<asp:TemplateField HeaderText="Last Request Date"> 
<ItemTemplate><%# (DateTime)Eval("LastRequestDate").Equals(DateTime.MinValue) ? "" : string.Format("{0:dd/MM/yyyy hh:mm:ss tt}", (DateTime)Eval("LastRequestDate")) %></ItemTemplate> 

+0

這是完美的,當你不想/不能改變類型,POCO – 2016-10-07 07:50:20