Dojo日历矩阵VIew

Dojo Calendar Matrix VIew

本文关键字:VIew 日历 Dojo      更新时间:2023-09-26

我是dojo和js的新手,我的问题是如何使用点击方法将事件添加到dojo日历中,并将json格式的现有事件添加到Matrix日历中。

它是代码的一部分,但不能添加事件,也不能显示矩阵日历但是如果关闭此行//存储:new Observable(new Memory({data:someData})),显示矩阵日历。

<!DOCTYPE html>
<html >
<head>
    <link rel="stylesheet" href="claro.css">
    <link rel="stylesheet" href="Calendar.css" />
    <script>dojoConfig = {parseOnLoad: true}</script>
    <script src='unicorn/js/dojo/dojo.js'></script>
    <script>
require(["dojo/parser", "dojo/ready", "dojox/calendar/Calendar"],
  function(parser, ready, Calendar){
    ready(function(){

require(["dojo/store/Observable", "dojo/store/Memory"], function(Observable, Memory){

 var someData = [
  {
    id: 0,
    summary: "Event 1",
    startTime: "2015-01-01T10:00",
    endTime: "2015-01-01T12:00"
  }
];
calendar = new Calendar({
  date: new Date(2015, 1, 1),
  decodeDate: function(s){
    return stamp.fromISOString(s);
  },
  encodeDate: function(d){
    return stamp.toISOString(d);
  },
  store: new Observable(new Memory({data: someData})),
  dateInterval: "day",
  style: "position:relative;width:500px;height:500px"
}, "someId");
   });           
   }
          )}
  );
    </script>
</head>
<body class="claro">
    <style type="text/css">
  .dojoxCalendar{ font-size: 12px; font-family:Myriad,Helvetica,Tahoma,Arial,clean,sans-serif; }
</style>
<div id="someId" >
</div>
</body>
</html>

感谢

您的意思是通过CRTL+clic创建一个类似于代码示例中的事件?

// Enable creation of event interactively by ctrl clicking grid.
        var createItem = function(view, d, e){
            var cal1 = ActiviteCB.get("checked");
            var cal2 = TacheCB.get("checked");
            // create item by maintaining control key
            if(!e.ctrlKey || e.shiftKey || e.altKey || (!cal1 && !cal2)){
                return null;
            }
        // create a new event
        var start, end;
        var colView = calendar.columnView;
        var cal = calendar.dateModule;
        if(view == colView){
            start = calendar.floorDate(d, "minute", colView.timeSlotDuration);
            end = cal.add(start, "minute", colView.timeSlotDuration); 
        }else{
            start = calendar.floorToDay(d);
            end = cal.add(start, "day", 1);
        }
        var item = {
            unid: '',
            summary: "New event " ,
            startTime: start,
            endTime: end,
            calendar: cal1 ? "Activite": "Tache",
            allDay: view.viewKind == "matrix",
            idclient: '',
            TypeAction:''
        };          
        return item;
    };
    calendar.set("createItemFunc", createItem);

不确定是不是想要你的要求。。。