我正在尝试格式化KendoUI Grid中的日期字段,其中字段作为对象出现:
"callStart":{"date":"2014-01-24 12:04:36","timezone_type":3,"timezone":"Europe\/Berlin"}
我试过了:
{ field: "callStart", title: "Fecha", width: "100px", format: "{0:yyyy-MM-dd}" }
但仍显示:
[object Object]
有什么想法吗?
谢谢!
答案 0 :(得分:1)
不知道你是否已经解决了,但我反正迟到了。它之所以不起作用,是因为您可能试图将整个对象callStart
绑定到字段列中。该字段只需要一个日期对象,但您不给它一个。
此外,您的对象似乎仍然是JSON字符串格式,您需要解析该对象作为第一步(如果它真的只是原始JSON)。然后下一步,您可以:
callStart
(使用kendo模板)callStart
醇>
选项1:使用模板
解析列字段本身{
field: "callStart",
title: "Fecha",
width: "100px",
template: "#= kendo.toString(kendo.parseDate(callStart.date, 'yyyy-MM-dd HH:mm:ss'), 'MM/dd/yyyy') #"
}
此选项的优点是您的数据源对象仍然保持其原始形式,但过滤和排序可能会有点棘手。
选项2:通过dataSource模式解析对象
var gridDS = new kendo.data.DataSource({
data: result,
schema: {
parse: function (result) {
for (var i = 0; i < result.length; i++) {
var resultItem = result[i];
resultItem.callStart = kendo.parseDate(result[i].callStart.date, 'yyyy-MM-dd HH:mm:ss');
}
return result;
}
},
//etc...
});
每个数据源对象都通过解析函数,您可以执行任何处理,将其转换为JS日期或kendo Date对象。优点是您可以控制该列的确切类型,并使过滤/排序更容易。
您可能需要做一些调整才能获得所需的输出,但这些是您需要选择的一般选项。