eval( "value")がnullのか確認してください
質問
C#
の極めて新しい日付に数分を追加するために値をキャストする必要がありますが、NULLにすることができます。これが私のやり方です:
if(Eval("DUREE") != DBNull.Value)
{
var duration = Convert.ToInt32(Eval("DUREE"));
var date = Convert.ToDateTime(Eval("DATE"));
var dateAsString = Convert.ToString(date.AddMinutes(duration));
DataBinder.Eval(Container.DataItem, dateAsString, "{0:HH:mm}")
}
else
{
" - "
}
.
ここに私が得るエラー:
databinding: 'system.data.datarowview'は、'17 / 04/2014 13:30:00 'と呼ばれるプロパティを詰め込んでいません。
だから、小切手は誤っていますか?またはエラーは他の場所ですか?
解決
日付を持つ文字列が必要な場所にASPXでコードを使用してみてください。
<%# Eval("DUREE") == DBNull.Value || Eval("DATE") == DBNull.Value
? " - "
: Convert.ToString(Convert.ToDateTime(Eval("DATE")).AddMinutes(Convert.ToInt32(Eval("DUREE")))), "{0:HH:mm}") %>
.
コードでは、DataBinder.Eval
に渡してDATEを持つがプロパティ名ではなく2番目のパラメータ文字列を渡します。
他のヒント
'eval'メソッドが文字列の形式で日付値を返していると仮定して、これはあなたがしようとしていることは何ですか?:
Convert.ToDateTime(Eval("DATE")).AddMinutes(Convert.ToDateTime(Eval("DUREE")).Minute)
それは数分を加えるためのあなたの問題に対する答えかもしれません。
しかし、あなたが違う問題を示すように思われる誤り。あなたが投稿したコードは、後ろのコード内にあるようです(?)。DataBinder.Eval
メソッドは通常、Repeater ControlのようなWeb制御用のASPXで使用されます。その場合、Publicプロパティの名前として2番目のパラメータをDataBinder.Eval
に渡す必要があります。
これを確認することができます。ここで
プロパティ
の値を返すときに数分の追加を行うことができます。所属していません StackOverflow