given:
public class Customer
{
public int Id { get; set; }
public string FirstName { get; set; }
public DateTime Birthdate { get; set; }
}
You can add an additional property to the Customer called 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 "";
}
}
Obviously, you could do whatever formatting you'd like to do on the BirthDateStr in the getter to make it match your format.
Alternatively, you can update your front-end GridView display to hide out the DateTime.MinValue as follow:
<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>
Unless that's mapped to a Database, I'd make it nullable:
public class Customer
{
public int Id { get; set; }
public string FirstName { get; set; }
public DateTime? Birthdate { get; set; }
}
EDIT:
If it IS mapped, then I'd just make a readonly nullable value for it:
public DateTime? BirthdateDisplay
{
get
{
if (this.Birthdate == default(DateTime))
return null;
else
return this.Birthdate;
}
}