ASP.NET 3.5 GridView模板字段显示日期(如果不是MinValue)?
我对ASP.NET有一个相当简单的问题。我有一个带有模板字段的网格视图。在模板字段中,我有一个标签。如果datetime值不是最小值(换句话说,日期-时间字段尚未设置),我将尝试将labels text属性设置为绑定列中指定的日期。我真的不知道该怎么做。我在下面给出了一些我尝试过的代码,以便更清楚地了解我要实现的目标:ASP.NET 3.5 GridView模板字段显示日期(如果不是MinValue)?,asp.net,gridview,templatefield,Asp.net,Gridview,Templatefield,我对ASP.NET有一个相当简单的问题。我有一个带有模板字段的网格视图。在模板字段中,我有一个标签。如果datetime值不是最小值(换句话说,日期-时间字段尚未设置),我将尝试将labels text属性设置为绑定列中指定的日期。我真的不知道该怎么做。我在下面给出了一些我尝试过的代码,以便更清楚地了解我要实现的目标: <asp:TemplateField HeaderText="Start Date"> <ItemTemplate>
<asp:TemplateField HeaderText="Start Date">
<ItemTemplate>
<asp:Label ID="startDateLabel" runat="server"
Text='<%# if (Eval("StartDate") == DateTime.MinValue) { "None" } else { Eval("StartDate") } %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
我试图检索的字段是StartDate
有人对如何做到这一点有什么想法吗
谢谢你的帮助。在用项目类代码更新我的帖子后,我意识到尝试将if语句集成到TemplateField中似乎有些草率。我决定向名为StartDateString的项目类添加一个属性,该属性包含我希望在视图层执行的逻辑。这样,我就可以创建StartDateString属性的绑定字段:
public string StartDateString
{
get
{
if (StartDate == DateTime.MinValue)
{
return "";
}
else
{
return StartDate.ToString("dd/MM/yyyy");
}
}
}
我想我是从错误的方向来处理这个问题的……我意识到这篇文章很老了,但我也遇到了同样的问题(过去我也这样做过,但我忘记了如何解决它)。在别处找到的解决方案可能会对其他寻求同样解决方案的人有所帮助。无论如何
在类中使用可为空的DataTime类型。“DateTime?”而不是“DateTime”您绑定到什么?在数据源中执行此操作可能比在GridView中更容易。我绑定到一个对象数据源。您可以发布ObjectDataSource的代码吗?我更新了我的问题,以包含对象数据源代码以及从对象数据源返回的类。这正是我要建议的+1.
public class Project
{
#region Private Fields
private Client _client;
#endregion
#region Public Properties
public Guid ID { get; set; }
public string Name { get; set; }
public string Abbreviation { get; set; }
public string Description { get; set; }
public Guid ClientID { get; set; }
public Client Client
{
get
{
if (_client == null)
{
_client = new Client();
}
return _client;
}
set
{
_client = value;
}
}
public ProjectStatus ProjectStatus { get; set; }
public Employee ProjectManager { get; set; }
public Guid ProjectManagerID { get; set; }
public bool Active { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
#endregion
#region Overrides
public override string ToString()
{
return Name;
}
#endregion
}
public string StartDateString
{
get
{
if (StartDate == DateTime.MinValue)
{
return "";
}
else
{
return StartDate.ToString("dd/MM/yyyy");
}
}
}