2014-07-25 2 views
0

MVC 5 응용 프로그램에서 JQuery Datatables를 사용하고 있습니다. 내 MVC 컨트롤러 내 내 datatables 중 하나에 정렬을 구현하고 있습니다. 컬럼 중 하나는 사용자에게 날짜를 표시하며,이 컬럼을 정렬 할 수 있기를 원합니다.이 컬럼은 잘 작동합니다. c.InitiatedDate이 NULL 인 경우LINQ 쿼리 NULL 인 경우 DateTime 대신 문자열 반환

//Get index of column to be sorted 
var sortColumnIndex = Convert.ToInt32(Request["iSortCol_0"]); 

Func<survey_status, DateTime> orderingFunctionDate; 

orderingFunctionDate = (c => c.InitiatedDate == null ? default(DateTime) : c.InitiatedDate.Value); 

이 문제는, 순간, 나는 그렇지 않으면 나는 데이터베이스에 기록 된 실제 날짜를 반환, 기본 날짜 01/01/000 1을 반환합니다.

나는 사용자에게 01/01/0001을 되 돌리는 것을 좋아하지 않으며, 사용성이 좋지 않으며 혼란스러워 할 수 있습니다. 대신, c.InitiatedDate이 NULL이면 "날짜 없음"과 같은 것을 반환하고 싶습니다.

문제는 그 기능 Func<survey_status, DateTime> orderingFunctionDate는 문자열을 날짜 시간을하지 반환

orderingFunctionDate = (c => c.InitiatedDate == null ? "No date available" : c.InitiatedDate.Value); 

때문으로 내가 오류 no implicit conversion between string and DateTime를 얻을이 변화를 만드는

orderingFunctionDate = (c => c.InitiatedDate == null ? default(DateTime) : c.InitiatedDate.Value); 

을 대체 할 수있다.

누구든지 나를 도와 줄 수 있습니까?

도움을 주시면 감사하겠습니다.

감사합니다.

답변

1

nullabel DateTime을 사용하고 기본 날짜 대신 null을 반환해야합니다. 귀하의 함수 프로토 타입을 변경 :

Func<survey_status, DateTime?> orderingFunctionDate; 

그리고의 내용 :

orderingFunctionDate = (c => c.InitiatedDate); 

그럼 난 당신이 데이터를 널 때 사용하는 값을 지정할 수의 jQuery DataTables 믿습니다.

+0

좋은 아이디어, thanks David. – tgriffiths