2

カスタム グリッドのようなコントロールで印刷する必要がある 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 が出力されます。

Convert.ToDateTime空の文字列でない場合にのみ実行するために、aspx コードで If-Statement を作成する方法はありますか?

4

2 に答える 2

2
Container.Value.Length > 0 ? Convert.ToDateTime(Container.Value).ToShortTimeString() : ""

Container.Valueまた、定義したスコープ内の任意のメソッドに渡すことができる必要があります。

于 2008-11-24T14:23:18.877 に答える
0

コード ビハインドに、チェックを行う保護されたメソッドを含めることができます。

protected static string ConvertDate(object date) {
    if (date == null)
       return string.Empty;
    return Convert.ToDateTime(date).ToShortTimeString();
}
于 2008-11-24T14:24:39.840 に答える