我有一个DateTime对象,我需要在自定义网格状控件中打印。
我要打印的数据类型是dd-mm-yyyy格式的日期。
此值可以填充或空白。
如果已填充,则会将其解析为DateTime
,然后打印为默认ToString
。
对于每一行,我都可以使用
<CellTemplate>
<asp:Literal ID="Literal2" runat="server" Text="<%# Container.Value %>"></asp:Literal>
</CellTemplate>
但这会打印出日期的默认长版本。我想要ToShortDateString()
的格式。
所以我尝试修改为:
<CellTemplate>
<asp:Literal ID="Literal2" runat="server" Text="<%# Convert.ToDateTime(Container.Value).ToShortTimeString()%>"></asp:Literal>
</CellTemplate>
这可以按预期工作。
现在我的空日期有问题,
Convert.ToDateTime()
在空字符串上,它将打印默认的DateTime。
有没有办法可以在我的aspx代码中设置一个If-Statement,只执行Convert.ToDateTime
,如果它不是一个空字符串?
答案 0 :(得分:2)
Container.Value.Length > 0 ? Convert.ToDateTime(Container.Value).ToShortTimeString() : ""
您还应该能够将Container.Value
传递给您定义的范围内的任何方法。
答案 1 :(得分:0)
您可以在代码中使用受保护的方法进行检查
protected static string ConvertDate(object date) {
if (date == null)
return string.Empty;
return Convert.ToDateTime(date).ToShortTimeString();
}