2

我有一个 DateTime 对象,我需要在自定义网格控件中打印它。我要打印的数据类型是 dd-mm-yyyy 格式的日期。该值可以是填充的,也可以是空白的。如果已填充,它将被解析为 aDateTime然后打印为 default 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,如果它不是空字符串,则只执行?

4

2 回答 2

2
Container.Value.Length > 0 ? Convert.ToDateTime(Container.Value).ToShortTimeString() : ""

您还应该能够传递Container.Value给您定义的范围内的任何方法。

于 2008-11-24T14:23:18.877 回答
0

你可以在你的代码中有一个受保护的方法,它会为你做检查

protected static string ConvertDate(object date) {
    if (date == null)
       return string.Empty;
    return Convert.ToDateTime(date).ToShortTimeString();
}
于 2008-11-24T14:24:39.840 回答