不要在 GridView 中显示日期时间最小值

本文关键字:日期 时间 最小值 显示 GridView | 更新日期: 2023-09-27 18:32:43

给定:

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

我有未输入某些出生日期的列表,因此当我绑定到 GridView 时,它会显示 DateTime.MinValue。如果出生日期是 DateTime.MinValue,有哪些不同的方法可以在网格视图中显示空白?

不要在 GridView 中显示日期时间最小值

除非它映射到数据库,否则我会使其可为空:

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;
   }   
}

您可以向客户添加一个名为 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 "";
        }
}

显然,您可以在getter中的BirthDateStr上执行任何您想做的格式,以使其与您的格式匹配。

或者,您可以更新前端 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>