我正在使用一个Kendo Grid,它使用MVC Helpers构建,以显示一些远程JSON数据。
除日期列外,一切正常。
这是我的设置。
查看:
@(Html.Kendo().Grid<TrainingDTO>().Name("grid_training")
.Columns(c => {
c.Bound(a => a.Id).Width(50);
c.Bound(a => a.Start).ClientTemplate("#= (Start == null) ? ' ' : kendo.toString(Start, 'dd-MM-yyyy') #");
c.Bound(a => a.End).Format("{0:dd/MM/yyyy HH:mm:ss}");
c.Bound(a => a.Description);
})
.Pageable()
.Scrollable().DataSource(ds => ds.Ajax().PageSize(5).Model(m => m.Id(p => p.Id)).Read(R => R.Action("GridData", "Home", new { providerId = Model.Id }).Type(HttpVerbs.Post)))
)
控制器:
[HttpPost]
public JsonResult GridData([DataSourceRequest]DataSourceRequest request) {
var data = new Service().LoadSomeData().ToDataSourceResult(request, A => new {
Id = A.Id,
Start = A.Start,
End = A.End,
Description = A.Description
});
return Json(data, JsonRequestBehavior.AllowGet);
}
返回(在json中)
{
"Data": [
{
"Id": 1,
"Start": "\/Date(1412031600000)\/",
"End": "\/Date(1415318400000)\/",
"Description": "test teste test"
}
],
"Total": 1,
"AggregateResults": null,
"Errors": null
}
“开始”和“结束”列显示为空。 TrainingDTO POCO上的这些属性是DateTime Nullables(即DateTime?)
我已经尝试了很多选项来格式化数据,但无济于事。
有没有办法在网格上打印这些JSON日期(不需要将它们格式化为控制器上的字符串)?
答案 0 :(得分:0)
我以前遇到过这个问题。
我假设您希望使用英国日期格式而不是默认的美国格式。 如果你取消格式我希望你会看到格式正确的日期。
由于您似乎使用的是扁平模型(日期并未在复杂的视图模型中正常工作),因此最简单的方法是将文化文件添加到项目中,然后将其设置为英国一切都正确。
所以在你的布局页面中把它放在kendo脚本之后:
<script src="/Scripts/kendo/{you version here}/cultures/kendo.culture.en-GB.min.js"></script>
<script type="text/javascript">
kendo.culture("en-GB");
</script>
如果文化文件不是项目的一部分,只需通过telerik升级并包含它们或只是将它们复制到项目中。