質問

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に渡す必要があります。

これを確認することができます。ここで

プロパティ

の値を返すときに数分の追加を行うことができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top