ASP.NET内联脚本

时间:2008-11-24 14:17:02

标签: c# asp.net scripting inline

我有一个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,如果它不是一个空字符串?

2 个答案:

答案 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();
}