symfony 2.3 -在KendoUI网格中格式化日期字段作为对象



我正在尝试在KendoUI网格中格式化一个日期字段,该字段将作为对象出现:

"callStart":{"date":"2014-01-24 12:04:36","timezone_type":3,"timezone":"Europe/Berlin"}

I have try:

{ field: "callStart", title: "Fecha", width: "100px", format: "{0:yyyy-MM-dd}" }

但仍显示:

[object Object]

任何想法?

谢谢!

不知道你是否已经解决了,但我还是会晚一点回答。它不工作的原因是因为您可能试图将整个对象callStart绑定到字段列中。这个字段只需要一个日期对象,但是你没有给它一个。

此外,您的对象似乎仍然是JSON字符串格式,您需要解析对象作为第一步(如果它真的只是原始JSON)。然后下一步,你可以:

  1. 在列本身上解析callStart(使用kendo模板)
  2. 通过schema
  3. 在数据源本身上解析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:通过数据源模式解析对象

 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 date或kendo date对象。这样做的好处是,您可以控制该列的确切类型,并使过滤/排序更容易。

您可能需要做一些调整来获得您想要的输出,但这些是您需要从中选择的一般选项。

最新更新