.NET DateTime序列化为JSON以在ExtJs JsonStore(ExtJs Calendar的事件存储)中使用?

时间:2011-02-23 15:26:37

标签: json datetime serialization extjs store

我正在尝试为ExtJs日历设置Json商店 商店使用Http Proxy来检索它的数据 stores字段包括startDate和endDate,它们是date类型的对象 我将我的C#代码中的数据序列化为Json,这将由Http代理请求 我想知道我应该序列化开始并以字符串或C#DateTime类型结束 目前我将它们序列化为DateTime类型。

Json的回答如下:

{"Data":
"items":[{
    "cid":"0",
    "end":"\/Date(1275260400000+0100)\/",
    "notes":"4:00",
    "start":"\/Date(1275260400000+0100)\/",
    "title":"Basic""}]

start和end属性看起来像某种日期引用。 我已经尝试将startDate和endDate序列化为字符串而不是DateTime类型。 这将返回以下JsonResponse:

{"Data":
"items":[{
    "cid":"0",
    "end":"03/06/10",
    "notes":"4:00",
    "start":"04/06/10",
    "title":"Basic""}]

但是,在两种情况下,当存储完成加载时,endDate和startDate字段是未定义的。 我该怎么办?
我想也许我必须将日期格式化为extjs预期的某种格式?

以下是一些示例代码:

this.eventStore = new Ext.data.JsonStore({
    id: 'eventStore',
    root: 'Data.items',
    proxy: new Ext.data.HttpProxy({
            url: AppRootPath + 'Calendar/GetCalendarData',
            method: 'POST'
    }),//proxy
    fields: Ext.calendar.EventRecord.prototype.fields.getRange()
});

2 个答案:

答案 0 :(得分:1)

查看Ext.data.Field的文档 - http://dev.sencha.com/deploy/dev/docs/?class=Ext.data.Field。它有一个名为'dateFormat'的属性,允许您指定确切的日期格式。

答案 1 :(得分:0)

我遇到了同样的问题,我解决了这个问题:

fields: [
              { name: 'Id', type: 'int' },
              { name: 'ResourceId', mapping: 'fitter_id', type: 'int' },
              { name: 'StartDate', type: 'date', format: 'd/m/Y G:i' },
              { name: 'EndDate', type: 'date', format: 'd/m/Y G:i' },
              { name: 'status', type: 'int' },
              { name: 'job_id', type: 'int' }
         ]