下式给出:
public class Customer
{
public int Id { get; set; }
public string FirstName { get; set; }
public DateTime Birthdate { get; set; }
}
我有List,其中没有输入一些生日,因此当我绑定到GridView时,它显示DateTime.MinValue。如果生日是DateTime.MinValue,有什么不同的方法可以在gridview中显示空白?
答案 0 :(得分: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;
}
}
答案 1 :(得分:3)
您可以向Customer添加名为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执行任何格式化操作,使其与您的格式匹配。
答案 2 :(得分: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>