我已经设置了ExtJs日历。然而,即使我没有调用store.load方法,商店最初也会加载4次。我只是想知道从哪里调用它?因为它也以错误的格式向服务器发送开始和结束日期。即,它以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文件中调用了load方法。但是我找不到确切的位置? 我可以拦截这些加载调用以确保日期格式正确吗?
答案 0 :(得分:1)
这是Ext 3.3示例版本中的错误。每个视图加载(月/周/日)都会导致单独的存储加载调用。这个(以及许多其他内容)已在Ext Calendar Pro版本的组件(examples here)中得到修复。日期格式也可以通过CalendarView.dateParamFormat
配置在Pro版本中配置。你当然可以自己解决这些问题,但我建议你试试Pro版本,看看它是否更适合你的需求。
答案 1 :(得分:0)
是的,你可以停止最初在日历上加载商店..它的装载甚至认为我们已经使它自动加载:false。
实例/日历/ SRC /视图/ 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')
}
}); * /
现在额外加载停止,你可以随时执行商店。 :)