dojox.Calendar和JsonRest:列视图不显示事件

时间:2013-01-02 15:55:02

标签: dojo

我正在尝试使用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”事件触发时发生 还要注意,据我测试,我需要设置日历“商店”属性 每次让新事件在矩阵视图刷新时显示。

但是我仍然无法在列视图中显示事件! 任何提示?

非常感谢提前 罗伯特

1 个答案:

答案 0 :(得分:0)

对于记录(此问题已在Dojo邮件列表中得到解答),此用户试图显示dojox.calendar不支持的准时事件(当时开始和结束的事件)。如果有人对此功能感兴趣,请在GitHub上为项目添加功能愿望:https://github.com/damiengarbarino/dojo-calendar