前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DateTime在ExtJs中无法正确序列化的问题

DateTime在ExtJs中无法正确序列化的问题

作者头像
菩提树下的杨过
发布2018-01-22 17:49:18
2.6K0
发布2018-01-22 17:49:18
举报

这几天在学习ExtJs + Wcf的过程中,发现一个问题,如果Class中有成员的类型为DateTime,即使我们正常标识了[DataMember],序列化成JSON时,会生成一种特有的格式:

..."AddTime":"\/Date(1213718400000+0800)\/"}...

这种格式ExtJs并不识别,导致最终的组件,比如Grid上无法正常显示,解决办法有二个:

1.将Class的成员,手动改成String类型,不过个人不推荐这种方式,毕竟将数据类型都改了,相应的服务端很多地方都可能会做相关修改

2.用JS在前台调用时,用代码处理返回的JSON字符串格式,使之符合ExtJs的规范(这个方法是从博客园"小庄"那里学来的,呵)

代码语言:js
复制
Ext.onReady(function() {
 //这个函数演示了怎样把服务器端的DateTime类型转为Javascript的日期
         function setAddTime(value, p, record) {
             var jsondate = record.data.F_AddTime;
             return eval("new " + jsondate.substr(1, jsondate.length - 2)).toLocaleDateString();
         }
 ...

设置Grid的Columns时,类似如下处理:

代码语言:js
复制
 var grid = new Ext.grid.GridPanel({
             store: store,
             columns: [
                 ...
 
                 { header: "添加时间", width: 140, sortable: true,renderer: setAddTime,dataIndex: 'F_AddTime' }
             ],
 
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2008-08-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档