我正在尝试使用dojox.Calendar来显示从中查询的事件 一个REST服务器,使用dojo.store.JsonRest(没有Observable存储的原因 事件是只读的。
我将初始“dateInterval”模式设置为“month”,以便显示“矩阵视图” 并且我拦截“timeIntervalChange”事件以更改日历存储使用的“查询” 用户在几个月之间移动时按需获取事件。
Everythig运行良好,但如果我尝试从“矩阵视图”切换到“列视图”(通过日历导航按钮),即使我看到(来自firebug控制台)“timeIntervalChange”事件触发和REST存储,也不会显示任何事件查询定期提交给服务器。
以下是我页面中的dojox.Calendar代码段:
require(["dojo/parser", "dojo/ready", "dojo/_base/xhr", "dojo/date/stamp", "dojo/date/locale", "dijit/Dialog", "dojo/store/JsonRest", "dojox/calendar/Calendar"],
function(parser, ready, xhr, stamp, locale, Dialog, JsonRest, Calendar) {
ready(function(){
var calendarDate = 'the initial ISO date from an MVC model object';
var query = "";
var eventStore = new JsonRest({target: 'the REST service URL'});
calendar = new Calendar({
date: calendarDate,
dateInterval: "month",
startTimeAttr: "dataOraInizioISO",
endTimeAttr: "dataOraFineISO",
summaryAttr: "descrizione",
decodeDate: function(s){return stamp.fromISOString(s);},
encodeDate: function(d){return stamp.toISOString(d);},
style: "position:relative;width:950px;height:700px",
columnViewProps:{minHours:5, maxHours:23, hourSize:40, timeSlotDuration:30},
editable: false,
selectionMode: "none",
}, "calendarioIncontri");
calendar.on("timeIntervalChange", function(e){
var sStartDate =
locale.format(e.startTime,{selector: "date", pattern: "dd/MM/yyyy", fullYear: true});
var sEndDate =
locale.format(e.endTime,{selector: "date", pattern: "dd/MM/yyyy", fullYear: true});
query = "?" + "dataInizio=" + sStartDate + "&" + "dataFine=" + sEndDate;
calendar.set('query', query);
calendar.set('store', eventStore);
});
请注意,为了避免所有事件(!)的初始批量查询,我设置了日历 “store”和“查询”属性仅在“timeIntervalChange”事件触发时发生 还要注意,据我测试,我需要设置日历“商店”属性 每次让新事件在矩阵视图刷新时显示。
但是我仍然无法在列视图中显示事件! 任何提示?
非常感谢提前 罗伯特
答案 0 :(得分:0)
对于记录(此问题已在Dojo邮件列表中得到解答),此用户试图显示dojox.calendar不支持的准时事件(当时开始和结束的事件)。如果有人对此功能感兴趣,请在GitHub上为项目添加功能愿望:https://github.com/damiengarbarino/dojo-calendar