.NET DateTime сериализуется в JSON для использования в ExtJs JsonStore (хранилище событий для ExtJs Calendar)? - PullRequest
0 голосов
/ 23 февраля 2011

Я пытаюсь настроить Json Store для календаря ExtJs.
Хранилище использует Http Proxy для извлечения своих данных.
Поля хранилищ включают 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""}]

Свойства начала и конца похожи на ссылку на дату.Я попытался сериализовать 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 ]

1 голос
/ 23 февраля 2011

Проверьте документацию для Ext.data.Field - http://dev.sencha.com/deploy/dev/docs/?class=Ext.data.Field. У него есть свойство с именем dateFormat, которое позволяет вам указать точный формат даты.

0 голосов
/ 29 июля 2011

У меня была такая же проблема, и я решил ее так:

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' }
         ]
...