문제

꽤 새로운 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
{
    " - "
}

여기에 오류가 발생합니다.

데이터 바인딩 :'System.Data.DataRowView'는 다음과 같은 속성을 가져오지 않습니다.'2014년 4월 17일 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에서 귀하가 제 2 매개 변수 문자열을 날짜하지만 속성 이름이 아닌 경우

다른 팁

'Eval' 메소드가 문자열 형식으로 날짜 값을 반환한다고 가정하면, 이것이 당신이 하려는 일입니까?:Convert.ToDateTime(Eval("DATE")).AddMinutes(Convert.ToDateTime(Eval("DUREE")).Minute)이것이 분 추가 문제에 대한 답일 수 있습니다.

그러나 발생한 오류는 다른 문제를 나타내는 것 같습니다.게시하신 코드는 코드 비하인드(?)에 있는 것 같습니다. DataBinder.Eval 메서드는 일반적으로 Repeater 컨트롤과 같은 웹 컨트롤을 위해 aspx에서 사용됩니다.이 경우 두 번째 매개변수를 전달해야 합니다. DataBinder.Eval 공공 재산의 이름으로.

명확성을 위해 이것을 확인할 수 있습니다. 여기

속성 값을 반환하는 동안 분을 추가할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top