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

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

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

 

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

 

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

 

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

 

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时,类似如下处理:
var grid = new Ext.grid.GridPanel({
            store: store,
            columns: [
                ...
               
                { header: "添加时间", width: 140, sortable: true,renderer: setAddTime,dataIndex: 'F_AddTime' }
            ],

时间: 2024-08-31 16:49:04

DateTime在ExtJs中无法正确序列化的问题的相关文章

ASP.NET中JSON的序列化和反序列化

导读:JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍 ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍,ASP.NET如何序列化和反序列化的处理,在序列化和反序列化对日期时间.集合.字典的处理. 一.JSON简介 JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式. JSON是"名值对"的集合.结构由大括号'{

ASP.NET中JSON的序列化和反序列化使用说明_实用技巧

在网站应用中使用JSON的场景越来越多,本文介绍 ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍,ASP.NET如何序列化和反序列化的处理,在序列化和反序列化对日期时间.集合.字典的处理. 一.JSON简介 JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式. JSON是"名值对"的集合.结构由大括号'{}',中括号'[]',逗号',',冒号':',双引号'""'组成,包含

ASPNET中JSON的序列化和反序列化的方法_实用技巧

一.JSON简介  JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式. JSON是"名值对"的集合.结构由大括号'{}',中括号'[]',逗号',',冒号':',双引号'""'组成,包含的数据类型有Object,Number,Boolean,String,Array, NULL等. JSON具有以下的形式: 对象(Object)是一个无序的"名值对"集合,一个对象以&quo

一起谈.NET技术,ASP.NET 中JSON 的序列化和反序列化

JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍,ASP.NET如何序列化和反序列化的处理,在序列化和反序列化对日期时间.集合.字典的处理. 一.JSON简介 JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式. JSON是"名值对"的集合.结构由大括号'{}',中

通过实例说明交互设计中的正确表达

看到smashing上的一篇博文,取例说明一下交互设计中的正确表达,真实感表达和创意表达.实例来源:http://www.smashingmagazine.com/ ... xamples-and-trends/ 页面表达意思清晰明了,无歧义和费解之处.这也是对交互设计的保底要求了.如下图实例:   交互设计中的真实感表达 在内容正确表达的前提下,部分修饰内容模拟一些来源于现实的真实感效果.可以获得用户熟悉的认知习惯,有安全感.如下图实例:照片和便笺有一定的卷边效果,带来了一定的真实感且并不多余

ExtJs中使用TaskRunner和DelayedTask如何传参数到run()方法

在 ExtJs 中支持多线程的类有 Ext.util.TaskRunner 和 Ext.util.DelayedTask.TaskRunner 提供 了多线程的定时服务,DelayedTask 允许你延时多久在新建线程中执行一个任务.Ext.TaskMgr 是一个 TaskRunner 实例,在 TaskMgr.js 源码中可以看到最后一行是: Ext.TaskMgr = new Ext.util.TaskRunner(); 实质上不管是 TaskRunner 还是 DelayedTask,它们

在Python中marshal对象序列化的相关知识

  这篇文章主要介绍了在Python中marshal对象序列化的相关知识,是Python进阶学习中序列化相关的知识,需要的朋友可以参考下 有时候,要把内存中的一个对象持久化保存到磁盘上,或者序列化成二进制流通过网络发送到远程主机上.Python中有很多模块提供了序列化与反序列化的功能,如:marshal, pickle, cPickle等等.今天就讲讲marshal模块. 注意: marshal并不是一个通用的模块,在某些时候它是一个不被推荐使用的模块,因为使用marshal序列化的二进制数据格

在Excel中如何正确显示出长串数字?

  有的时候我们在excel表格中输入了一长串数字,但是显示不出来,这种情况很让人困恼,那么如何正确显示成这样的长串数字呢"6217001630005541399".下面小编就为大家介绍一下,来看看吧! 手动修改数字格式 [1]原因:Excel自动把长串数字转换成科学计数法,如果需要显示成长串数字就要将数据显示格式转换过来. [2]单击选中需要修改的单元格,鼠标右键单击,在选项菜单中选中"设置单元格格式" [3]在数字项,左侧菜单中选中"数值"并

Extjs中RowExpander控件的默认展开问题

 本文为大家探讨下关于Extjs中RowExpander控件的默认展开问题,下面有个不错的示例,感兴趣的朋友可以参考下  代码如下: //展开符合某个条件的行  function expendRow()  {  var i;//循环临时变量  var arr = [];//要展开的行的数组  for(i=0;i<ProdRequireInfoStore.data.length;i++)//ProdRequireInfoStore是gridpanel的数据源  {  var record = Pr