页面设计上的错误处理(源代码)

时间:2012-06-20 05:30:18

标签: c# asp.net try-catch eval

我在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>

如果它获得日期 null 值,则效果非常好。

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

因此无法转换为日期并抛出错误。

相反,我想在无法转换为DateTime格式时显示 null 空白值 。< / p>

有没有办法解决这个问题?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

在您的aspx文件中:

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

在您的Code Behind文件中:

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文件更具可读性,因为它可以防止崩溃并提供灵活的处理。