表达编辑

时间:2011-06-16 14:18:54

标签: c# asp.net-mvc

我正在使用asp.net,mvc / c#编写报告,在我的报告中,我希望显示没有时间的日期,而不是

12/3/2011 00:00:00 ------ to ------ 12/3/2011

我将这个表达式用于显示日期的文本框:

=FormatDateTime(Fields!DateClosed.Value)

并且对于具有日期的项目,它确实在没有时间的情况下正确显示 - 但对于列表中没有日期的其他项目,它们显示时间如下:上午12:00:00

如何修复表达式,使其仅在有日期显示时显示日期,而不显示日期不可用的时间。

3 个答案:

答案 0 :(得分:2)

怎么样:

=(DateClosed==null) ? FormatDateTime(DateClosed) : string.Empty;

另外,您可以使用

=(DateClosed==null) ? DateClosed.Value.ToString("mm dd yyyy") : string.Empty;

而不是调用单独的FormatDateTime()函数(当然,除非您需要集中日期格式,但可以通过将格式存储在web.config中来处理)。

甚至

string FormatDateTime(DateTime? date)
{
    var result = date==null ? date.ToString("mm dd yyyy") : string.Empty;
}

如果您不想将三元条件置于标记中。

答案 1 :(得分:1)

所以我玩了这个,我使用了一种不同的格式表达式,幸运的是效果很好。感谢大家的帮助。

=Format(Fields!DateClosed.Value, "d")

答案 2 :(得分:0)

检查日期是否为空,如果是,则设置为string.Empty