剑道网格date列没有格式化

我有一个像下面的KendoGrid ,当我运行应用程序,我没有得到date列的预期格式。

 $("#empGrid").kendoGrid({ dataSource: { data: empModel.Value, pageSize: 10 }, columns: [ { field: "Name", width: 90, title: "Name" }, { field: "DOJ", width: 90, title: "DOJ", type: "date", format:"{0:MM-dd-yyyy}" } ] }); 

当我运行这个时,我在DOJ专栏里收到了“ 2013-07-02T00:00:00Z ”。 为什么不格式化? 任何想法?

我发现这条信息,并得到它正常工作。 给我的数据是string格式,所以我需要使用kendo.parseDateparsingstring,然后用kendo.parseDate进行格式化。

 columns: [ { field: "FirstName", title: "FIRST NAME" }, { field: "LastName", title: "LAST NAME" }, { field: "DateOfBirth", title: "DATE OF BIRTH", template: "#= kendo.toString(kendo.parseDate(DateOfBirth, 'yyyy-MM-dd'), 'MM/dd/yyyy') #" }, ... 

参考文献:

  1. 格式-日-中网
  2. 的jsfiddle
  3. kendo uidate格式

只需要将该列的数据types放在数据源中

 dataSource: { data: empModel.Value, pageSize: 10, schema: { model: { fields: { DOJ: { type: "date" } } } } } 

然后你的声明栏:

  columns: [ { field: "Name", width: 90, title: "Name" }, { field: "DOJ", width: 90, title: "DOJ", type: "date", format:"{0:MM-dd-yyyy}" } ] 

尝试在剑道网格中格式化date为:

 columns.Bound(x => x.LastUpdateDate).ClientTemplate("#= kendo.toString(LastUpdateDate, \"MM/dd/yyyy hh:mm tt\") #"); 

这是你如何使用ASP.NET做到的:

 add .Format("{0:dd/MM/yyyy HH:mm:ss}"); @(Html.Kendo().Grid<AlphaStatic.Domain.ViewModels.AttributeHistoryViewModel>() .Name("grid") .Columns(columns => { columns.Bound(c => c.AttributeName); columns.Bound(c => c.UpdatedDate).Format("{0:dd/MM/yyyy HH:mm:ss}"); }) .HtmlAttributes(new { @class = ".big-grid" }) .Resizable(x => x.Columns(true)) .Sortable() .Filterable() .DataSource(dataSource => dataSource .Ajax() .Batch(true) .ServerOperation(false) .Model(model => { model.Id(c => c.Id); }) .Read(read => read.Action("Read_AttributeHistory", "Attribute", new { attributeId = attributeId }))) ) 

我使用的选项如下:

 columns.Bound(p => p.OrderDate).Format("{0:d}").ClientTemplate("#=formatDate(OrderDate)#"); function formatDate(OrderDate) { var formatedOrderDate = kendo.format("{0:d}", OrderDate); return formatedOrderDate; } 

据我所知,为了格式化date值你必须在parameterMap中处理它,

 $('#listDiv').kendoGrid({ dataSource: { type: 'json', serverPaging: true, pageSize: 10, transport: { read: { url: '@Url.Action("_ListMy", "Placement")', data: refreshGridParams, type: 'POST' }, parameterMap: function (options, operation) { if (operation != "read") { var d = new Date(options.StartDate); options.StartDate = kendo.toString(new Date(d), "dd/MM/yyyy"); return options; } else { return options; } } }, schema: { model: { id: 'Id', fields: { Id: { type: 'number' }, StartDate: { type: 'date', format: 'dd/MM/yyyy' }, Area: { type: 'string' }, Length: { type: 'string' }, Display: { type: 'string' }, Status: { type: 'string' }, Edit: { type: 'string' } } }, data: "Data", total: "Count" } }, scrollable: false, columns: [ { field: 'StartDate', title: 'Start Date', format: '{0:dd/MM/yyyy}', width: 100 }, 

如果你按照上面的例子,只是重命名像“StartDate”的对象,那么它应该工作(忽略“数据:refreshGridParams,”)

有关更多详细信息,请查看下面的链接或只是searchkendo grid parameterMap,看看别人做了什么。

http://docs.kendoui.c​​om/api/framework/datasource#configuration-transport.parameterMap

这可能有帮助:

 columns.Bound(date=> date.START_DATE).Title("Start Date").Format("{0:MM dd, yyyy}");