Календарь ExtJs EventStore поможет? - PullRequest
0 голосов
/ 17 февраля 2011

Я пытался настроить пример календаря baisc, чтобы поиграться с использованием календаря ExtJs.
Я посмотрел на примеры и документацию по Ext Calendar Pro .
У меня возникают трудности с тем, чтобы заставить работать простой пример календаря.
Я думаю, что моя проблема в том, что я не определяю хранилище правильно, я знаю, что хранилище должно содержать записи типа «Ext.calendar.EventRecord».
Какой тип магазина / устройства чтения я должен использовать для чтения записей?
Вот мой код:

var recs = [];
rec = new Ext.calendar.EventRecord({
    StartDate: '2101-01-12 12:00:00',
    EndDate: '2101-01-12 13:30:00',
    Title: 'My cool event',
    Notes: 'Some notes'
});
recs[0] = rec;

store = new Ext.data.Store({
     data: recs,
     reader: new Ext.data.ArrayReader({
                fields: ['StartDate', 'EndDate', 'Title', 'Notes']
    })
});

Ext.apply(this, config, {
    title: 'calendar',
    layout: 'fit',
    activeItem: 1,
    eventStore: store
});//Ext.apply           

1 Ответ

2 голосов
/ 17 февраля 2011

Глядя на этот пример, похоже, вам нужно использовать JsonStore (в котором есть JsonReader):

    new Ext.data.JsonStore({
       id: 'eventStore',
       root: 'evts',
       data: eventList, // defined in event-list.js
       proxy: new Ext.data.MemoryProxy(),
       fields: Ext.calendar.EventRecord.prototype.fields.getRange(),
       sortInfo: {
          field: 'StartDate',
          direction: 'ASC'
       }   
    });

С помощью EventList, определенного следующим образом:

var eventList = {
    "evts": [{
        "id": 1001,
        "cid": 1,
        "title": "Vacation",
        "start": today.add(Date.DAY, -20).add(Date.HOUR, 10),
        "end": today.add(Date.DAY, -10).add(Date.HOUR, 15),
        "ad": false,
        "notes": "Have fun"
    }]
}

Если вы используете удаленного провайдера, просто измените ваше свойство data в EventStore, чтобы вместо него загружаться из URL. Ваш ответ JSON должен быть в структуре, определенной eventList.

Надеюсь, это поможет.

...