【问题标题】:DateTime field showing as null in Telerik's Grid for Asp.net MVC在 Telerik 的 Asp.net MVC 网格中,日期时间字段显示为空
【发布时间】:2014-10-02 18:40:56
【问题描述】:

我正在尝试在 Kendo Grid 列中显示 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 用于日期列,它会显示该属性为空:.columns.Bound(o =&gt; o.EntryDate).Width("15%").Title(Resources.Date).ClientTemplate("#= EntryDate #");

JSON 日期是 MS 格式,剑道网格应该能够解析,我已经尝试将日期格式化为 ISO/UTC 日期格式和 javascript 日期格式,但问题仍然存在。

我正在使用 Telerik 的用于 Asp.Net MVC 版本 2014.2.903.545 的 UI 工具。

【问题讨论】:

    标签: c# asp.net-mvc telerik telerik-mvc


    【解决方案1】:

    发现问题。 Globalize.js 的 parseDate 覆盖了 kendo 自己的 parseDate 方法。

    如果你也遇到同样的问题,解决方法是在你注册了剑道的文化 javascript 之后再注册 globalize.js。

    您可以找到有关问题here的更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多