NSS_04 extjs中grid接收datetime类型参数列

时间:2023-04-24 19:03:02

今天在做用户列表时发现, asp.net mvc3的控制器在返回JsonResult结果时, 会把对象内的DateTime类型成员,解析为类似于\/Date(1238606590509)\/的格式 , 导致在页面上解析不了, 显示空白。

在网上搜索了一下,这种格式好像是计算从1970.1.1到现在的毫秒数, 为了带宽啥的设计的通用格式。 网上发现大部分解决方案为

  • 重写Controller的JsonResult, 看到这种网页就直接关掉, 绝对是走岔路了,微软不会搞个客户端解析不了的格式嘛。
  • 在客户端去掉Date外壳,然后重新生成Date, 但是在grid的字段中写renderer, 参数value根本就都是空的,也实现不了。

没有办法了, 只好老老实实地去看文档了, 终于发现在Ext.Date中的一行格式为MS的介绍:

MS        Microsoft AJAX serialized dates                                           \/Date(1238606590509)\/ (i.e. UTC milliseconds since epoch) or
\/Date(1238606590509+0800)\/

哇, 发达了, 然后更改Model为:

{name: 'CreateTime', type: 'date', dateFormat: 'MS'}

grid列定义为:

{
header: '创建日期',
dataIndex: 'CreateTime',
flex: 1,
xtype: 'datecolumn',
format: 'Y-m-d H:i:s'
}

然后就正常了, 浪费了大半天的时间啊。

以后还是要多看文档啊