简体   繁体   English

页面设计中的错误处理(源)

[英]error handling on page design (source)

I have a control in GridView which converts dateformat From MMddyyyy To ddMMyyyy . 我在GridView中有一个控件,该控件将dateformat从MMddyyyyy转换为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>

This works perfectly if it gets a date or null value. 如果它获得日期值,则可以完美地工作。

But in my case Value1 (the Bind Field) can be a string containing anything. 但就我而言, Value1(绑定字段)可以是包含任何内容的字符串。 say - 'garbageStr' . -'garbageStr'

So it fails to convert to date and throws error. 因此它无法转换为日期并引发错误。

Instead I want to display null or blank value when it fails to convert to DateTime format. 相反,当它无法转换为DateTime格式时,我想显示null空白值

Is there any way to handle this? 有什么办法可以解决这个问题?

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

In your aspx file: 在您的aspx文件中:

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

In your Code Behind file: 在您的代码隐藏文件中:

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;

}

Although its tedious, but you can make your aspx file more readable through this approach as it prevents clutering and provide flexible handling. 尽管这很繁琐,但是您可以通过这种方法使aspx文件更具可读性,因为它可以防止混乱并提供灵活的处理方式。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM