我在我的MVC 5应用程序中使用JQuery Datatables。我正在我的MVC控制器中的一个数据表上实现排序。其中一列向用户显示日期,我希望他们能够对此列进行排序,这样可以正常工作。
//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);
问题是,目前,如果c.InitiatedDate
为NULL,则返回默认日期01/01/000
1,否则我将返回数据库中记录的实际日期。
我不喜欢我向用户返回01/01/0001
,这不是很好的可用性,可能会让他们感到困惑。相反,我想返回类似于&#34;没有可用日期和#34;如果c.InitiatedDate
为NULL。
问题是我无法替换
orderingFunctionDate = (c => c.InitiatedDate == null ? default(DateTime) : c.InitiatedDate.Value);
带
orderingFunctionDate = (c => c.InitiatedDate == null ? "No date available" : c.InitiatedDate.Value);
因为函数Func<survey_status, DateTime> orderingFunctionDate
返回DateTime而不是字符串,并且在进行此更改时出现错误no implicit conversion between string and DateTime
。
任何人都可以帮我解决这个问题吗?
非常感谢任何帮助。
感谢。
答案 0 :(得分:1)
您应该使用nullabel DateTime并返回null
而不是默认日期。将您的函数原型更改为:
Func<survey_status, DateTime?> orderingFunctionDate;
内容:
orderingFunctionDate = (c => c.InitiatedDate);
然后我相信jQuery DataTables你可以指定一个值,当数据为空时使用。