2011-08-12 14 views
0

null可能なDateTimeがあります。値がある場合はShortDate形式で表示したいが、正しく取得できません。 null演算子($!{})をここで使用しようとしています。スパークヌル演算子がnullable型で動作しない

それはこのように動作するはずです:

<td>$!{period.Enddate.Value.ToShortDateString()}</td> 

しかし、これは、InvalidOperationExceptionがを与える:NULL可能なオブジェクトが値を持っている必要があります。

'Value'部分を削除すると、明らかに 'System.NullableにToShortDateStringの定義がありません'というメッセージが表示されます。

<td value="$!{period.Enddate.Value.ToShortDateString()}?{period.Enddate.HasValue}"></td> 

そして、私はtd要素の内部ではなく、TDの属性としてそれを取得しようとしています:それは正常に動作しますが、その1つのが唯一のこのような属性のために働く条件演算子で

。 私はここで何か間違っているのですか?これは既知の問題ですか?

私はInvalidOperationException(Nullableクラスによってスローされた)をキャッチすることはNullReferenceExceptionをキャッチするよりも扱いにくいことを理解していますが、それは重大な欠陥だと思います。ここ

乾杯、スパークバージョン1.6のよう ロナルド

答えて

0

は、いくつかのオプションがあります

は、フォーマットspecfier使用 -

または追加のプレゼンテーションプロパティを作成 -

public string EnddateText 
{ 
    get 
    { 
    var result = Enddate.HasValue ? Enddate.Value.ToShortDateString() : string.Empty; 
    return result; 
    } 
} 

<td>${ period.EnddateText }</td>