ExtJs Календарь магазин загрузить помощь? - PullRequest
0 голосов
/ 24 февраля 2011

Я настроил календарь ExtJs. Однако изначально магазин загружается 4 раза, хотя я не вызывал метод store.load. Мне просто интересно, откуда это вызывается? Так как он также отправляет даты начала и окончания в неправильном формате на сервер. то есть он отправляет даты в формате m / d / y, в то время как сервер ожидает d / m / y?

    this.eventStore = new Ext.data.JsonStore({
    id: 'eventStore',
    root: 'Data.items',
    proxy: new Ext.data.HttpProxy({
            url: AppRootPath + 'Calendar/GetCalendarData',
            method: 'POST'
    }),//proxy
    fields: [
        {name:'StartDate', mapping: 'start', type: 'date', dateFormat: 'd F Y'},
        {name:'EndDate', mapping: 'end', type: 'date', dateFormat: 'd F Y'},//H:i:s
        {name:'Title', mapping: 'title', type: 'string'},
        {name:'Notes', mapping: 'notes', type: 'string'},
        {name:'CalendarId', mapping: 'cid', type: 'string'}]
});

Календарь:

this.calendar = new Ext.calendar.CalendarPanel({
    activeItem: 2,
    id: 'calendar',
    eventStore: this.eventStore,
    calendarStore: this.calendarStore,
    headerCfg: {
        tag: 'center',
        cls: 'x-panel-header x-unselectable'
    },
    monthViewCfg: {
        showHeader: true,
        showWeekLinks: true,
        showWeekNumbers: true
    },
    title: 'My Calendar', // the header of the calendar, could be a subtitle for the app
    listeners: {
            'eventclick': {
                fn: function(vw, rec, el){
                    alert('@EventClicked');
                    debugger
                },
                scope: this
            },
            'dayclick': {
                fn: function(vw, dt, ad, el){
                    alert('@DayClicked');
                },
                scope: this
            },
            'viewchange': {
                fn: function(p, vw, dateInfo){
                    updateTitle.apply(this, [dateInfo.viewStart, dateInfo.viewEnd]);
                    Ext.getCmp('app-nav-picker' + config.id).setValue(dateInfo.activeDate);
                },
                scope: this
            },
            'eventmove': {
                fn: function(vw, rec){
                    rec.commit();
                    //var time = rec.data.IsAllDay ? '' : ' \\a\\t g:i a';
                    //this.showMsg('Event '+ rec.data.Title +' was moved to         '+rec.data.StartDate.format('F jS'+time));
                },
                scope: this
            }
    }

});

Я предполагаю, что метод загрузки вызывается из файла Calendar-all.js. Однако я не могу найти именно где? Могу ли я перехватить эти вызовы загрузки, чтобы убедиться, что даты в правильном формате?

Ответы [ 2 ]

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

Это ошибка в примере версии Ext 3.3. Каждая загрузка представления (месяц / неделя / день) вызывает отдельный вызов загрузки магазина. Это (наряду с множеством других вещей) было исправлено в Ext Calendar Pro версии компонентов ( примеры здесь ). Формат даты также настраивается в версии Pro через конфигурацию CalendarView.dateParamFormat. Вы, конечно, можете исправить это самостоятельно, но я бы порекомендовал вам попробовать версию Pro и посмотреть, подходит ли она вам лучше из коробки.

0 голосов
/ 14 декабря 2012

Да, вы можете остановить эту первоначальную загрузку магазина в каландре. При его загрузке даже думали, что мы произвели автозагрузку: false.

примеры / календарь / ЦСИ / просмотр / AbstractCalendar.js Линия # 717 прокомментируйте код

 /*this.store.load({
  params: {
     start: Ext.Date.format(this.viewStart, 'm-d-Y'),
     end: Ext.Date.format(this.viewEnd, 'm-d-Y')
   }

}); * /

теперь дополнительная загрузка останавливается, и вы можете запустить магазин, когда захотите. :)

...