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>

これは、日付またはnull値を取得した場合に完全に機能します。

しかし、私の場合、Value1(バインドフィールド)は何でも含む文字列にすることができます。言う-'garbageStr'

そのため、日付への変換に失敗し、エラーがスローされます。

代わりに、DateTime形式への変換に失敗したときにnullまたは空白の値を表示したいと思います。

これを処理する方法はありますか?

4

2 に答える 2

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 に答える
2

コードビハインドでこの目的のためにメソッドを定義し、それを呼び出すことができます。次に、メソッドの実装で変換を試み、 DateTime.TryParse文字列を適切に返すことができます

于 2012-06-20T05:35:56.863 に答える