我试图在剑道网格列中显示DateTime
但没有显示任何内容,所有其他列都按原样显示。
继承模特:
public class LogViewModel
{
public int Id { get; set; }
public string LoginName { get; set; }
public string Message { get; set; }
public string Task { get; set; }
public DateTime EntryDate { get; set; }
}
观点:
@(Html.Kendo().Grid<Models.LogViewModel>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(o => o.Task).Width("20%").Title(Resources.Task);
columns.Bound(o => o.Message).Width("55%").Title(Resources.Message);
columns.Bound(o => o.LoginName).Width("10%").Title(Resources.User);
columns.Bound(o => o.EntryDate).Width("15%").Title(Resources.Date);
})
.Sortable()
.Filterable()
.Resizable(r => r.Columns(true))
.Scrollable(scrollable => scrollable.Virtual(true))
.HtmlAttributes(new { style = "height:430px;" })
.ColumnMenu()
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(100)
.Read(read => read.Action("GetLogData", "Log"))
)
)
返回数据的控制器操作:
public JsonResult GetLogData([DataSourceRequest] DataSourceRequest request)
{
var data = this.dbLogContext.Logs.AsQueryable();
return Json(data.ToDataSourceResult(request, l => new LogViewModel
{
Id = l.Id,
LogType = l.LogType,
LoginName = l.LoginName,
Message = l.DisplayableMessage,
Task = l.DisplayableTask ?? l.Task,
EntryDate= l.EntryDate
}), JsonRequestBehavior.AllowGet);
}
以下是该行动返回的数据:
{"Data":[{"Id":1,"LogType":2,"LoginName":"Administrador","Message":"Erro ao criar campanha. Período de vendas inválido.","Task":"Criação de Campanha","EntryDate":"\/Date(1408367803637)\/","IsKey":false},{"Id":2,"LogType":4,"LoginName":"Operador RJ","Message":"Base de sorteio exportada com campanha em andamento","Task":"Exportação de Sorteio","EntryDate":"\/Date(1408367803637)\/","IsKey":false},{"Id":3,"LogType":6,"LoginName":"Operador PE","Message":"Um EC de nome \"Farmácia do Trabalhador\" foi criado.","Task":"Criação de EC","EntryDate":"\/Date(1408367803640)\/","IsKey":false},{"Id":4,"LogType":6,"LoginName":"Administrador","Message":"Contrato de captura de \"Cielo\" foi alterado.","Task":"Edição de Contrato","EntryDate":"\/Date(1408367803640)\/","IsKey":false},{"Id":5,"LogType":6,"LoginName":"","Message":"O usuário admin logou com sucesso.","Task":"Login","EntryDate":"\/Date(1409168290103)\/","IsKey":false},{"Id":6,"LogType":6,"LoginName":"admin","Message":"Pergunta secreta definida com sucesso.","Task":"ResetSecretQuestion","EntryDate":"\/Date(1409168302973)\/","IsKey":false},{"Id":7,"LogType":6,"LoginName":"","Message":"O usuário admin logou com sucesso.","Task":"Login","EntryDate":"\/Date(1409668083280)\/","IsKey":false},{"Id":8,"LogType":6,"LoginName":"","Message":"O usuário admin logou com sucesso.","Task":"Login","EntryDate":"\/Date(1410186476820)\/","IsKey":false},{"Id":9,"LogType":6,"LoginName":"","Message":"O usuário admin logou com sucesso.","Task":"Login","EntryDate":"\/Date(1410360292757)\/","IsKey":false},{"Id":10,"LogType":6,"LoginName":"","Message":"O usuário admin logou com sucesso.","Task":"Login","EntryDate":"\/Date(1410368834727)\/","IsKey":false},{"Id":11,"LogType":6,"LoginName":"","Message":"O usuário admin logou com sucesso.","Task":"Login","EntryDate":"\/Date(1410445689033)\/","IsKey":false},{"Id":12,"LogType":6,"LoginName":"","Message":"O usuário admin logou com sucesso.","Task":"Login","EntryDate":"\/Date(1410455135503)\/","IsKey":false},{"Id":13,"LogType":6,"LoginName":"","Message":"O usuário admin logou com sucesso.","Task":"Login","EntryDate":"\/Date(1410460921197)\/","IsKey":false},{"Id":14,"LogType":6,"LoginName":"","Message":"O usuário admin logou com sucesso.","Task":"Login","EntryDate":"\/Date(1410806956787)\/","IsKey":false},{"Id":15,"LogType":6,"LoginName":"","Message":"O usuário admin logou com sucesso.","Task":"Login","EntryDate":"\/Date(1411407682677)\/","IsKey":false},{"Id":16,"LogType":6,"LoginName":"","Message":"O usuário admin logou com sucesso.","Task":"Login","EntryDate":"\/Date(1411657058883)\/","IsKey":false},{"Id":17,"LogType":6,"LoginName":"","Message":"O usuário admin logou com sucesso.","Task":"Login","EntryDate":"\/Date(1412010615887)\/","IsKey":false}],"Total":17,"AggregateResults":null,"Errors":null}
您可以在上面看到EntryDate
字段包含所有条目的有效值,但如果我尝试将ClientTemplate用于日期列,则表示该属性为null:.columns.Bound(o => o.EntryDate).Width("15%").Title(Resources.Date).ClientTemplate("#= EntryDate #");
。
JSON日期是MS格式,kendo网格应该能够解析,我已经尝试使用ISO / UTC日期格式和javascript日期格式格式化日期,但问题仍然存在。
我使用Telerik的UI工具为Asp.Net MVC版本2014.2.903.545。
答案 0 :(得分:0)
发现问题。 Globalize.js的parseDate超越了剑道自己的parseDate方法。
如果您遇到同样的问题,解决方案是在注册了kendo的文化javascript之后注册globalize.js。
您可以找到有关该问题的更多信息here。