0

我在 GridView 中有一个控件,它将 dateformat 从MMddyyyy转换为ddMMyyyy

<ItemTemplate>
  <asp:Label ID="lblName" runat="server"
       Text='<%# Eval("Value1") != DBNull.Value ? 
                (Convert.ToDateTime(Eval("Value1")).ToString("dd/MM/yyyy")) : Eval("Value1") %>'>
  </asp:Label>
</ItemTemplate>

如果它得到一个日期值,这将非常有效。

但在我的情况下,Value1(绑定字段)可以是包含任何内容的字符串。说 - 'garbageStr'

因此它无法转换为日期并引发错误。

相反,当它无法转换为 DateTime 格式时,我想显示空值空白值。

有没有办法处理这个?

4

2 回答 2

2

您可以在后面的代码中为此目的定义一个方法,然后调用它,然后在方法实现中尝试转换 DateTime.TryParse并相应地返回字符串

于 2012-06-20T05:35:56.863 回答
2

在您的 aspx 文件中:

<asp:Label ID="lblName" runat="server" Text='<%# ReturnPropertDateTime(Eval("Value1")) %>'>   </asp:Label> 

在您的代码隐藏文件中:

protected DateTime ReturnPropertDateTime(object val)
{
        DateTime dt = null;
         string dateTimeValue = Convert.ToString(val);
    DateTime dateTime2;
    if (DateTime.TryParse(dateTimeValue.ToString("ddMMyyyy"), out dateTime2))
    {
        dt = dateTime2;     
      }
    else
    {
         dt = // Just Assign Default date time value you want.
    }

return dt;

}

虽然它很乏味,但是您可以通过这种方法使您的 aspx 文件更具可读性,因为它可以防止混乱并提供灵活的处理。

于 2012-06-20T05:57:18.003 回答