SmartGWT:CalendarEvent未在适当的位置显示

时间:2013-03-11 12:32:31

标签: calendar smartgwt

我在SmartGWT上面临一个问题Calendar对象未在其正确位置显示CalendarEvents我有两个需要显示的事件

EVENT ID ::: 1 :: START DATE :: Mon Mar 11 16:30:00 IST 2013 :: END DATE :: Mon Mar 11 19:00:00 IST 2013

EVENT ID ::: 2 :: START DATE :: Mon Mar 11 20:00:00 IST 2013 :: END DATE :: Mon Mar 11 23:06:00 IST 2013

Image1显示:日历事件显示事件2的详细信息但位置错误

Image2显示:日历事件显示事件1的详细信息,但事件设置的时间是事件1

我还附上了我的源代码:

Criteria criteria = new Criteria(); 
    criteria.addCriteria("truckId", "10");

    calendar.setShowDayView(false);
    calendar.setShowMonthView(false);
    calendar.setShowWeekView(true);
    calendar.setRowHeight(40);
    calendar.setDisableWeekends(false);
    calendar.setTimeFormatter(TimeFormatter.TOSHORT24HOURTIME);
    calendar.setDataSource(DataSource.get(LOAD_DMI));  
    calendar.invalidateCache();

    calendar.fetchData(criteria, new DSCallback() 
    {
        @Override
        public void execute(DSResponse response, Object rawData, DSRequest request) 
        {
            try
            {
                Record[] recordList = response.getData();
                record = new CalendarEvent();                   
                int temp = 1;
                calendarEvnt = new CalendarEvent[recordList.length];
                for(int k=0; k<recordList.length; k++)
                {
                    record.setEventId(temp);
                    record.setName(recordList[k].getAttribute("customerName"));
                    record.setDescription(recordList[k].getAttribute("truckName"));
                    record.setStartDate(recordList[k].getAttributeAsDate("scheduledPickUpDateAndTime"));
                    record.setEndDate(recordList[k].getAttributeAsDate("scheduledDropOffDateAndTime"));

                    calendarEvnt[k] = new CalendarEvent(record.getEventId(), record.getName(), record.getDescription(), record.getStartDate(), record.getEndDate());

                    temp++;
                }
                System.out.println("CALENDER EVENT Size ::: "+calendarEvnt.length);
                calendar.setData(calendarEvnt);
            }
            catch(Exception e)
            {
                e.printStackTrace();
            }
        }
    });
    calendar.draw();

2 个答案:

答案 0 :(得分:0)

日历集setEventAutoArrange(false)可能会解决此问题。

答案 1 :(得分:0)

我遇到了同样的问题,我偶然发现了这个问题,我确实尝试了setEventAutoArrange(false),该调用解决了问题,直到我注意到如果将setEventAutoArrange设置为false,则日历项目无法显示共享的事件相同的开始和结束时间。我不确定为什么smartgwt呈现OP所示的事件。但是,如果你在calendar.markForRedraw();中调用DSCallback并且问题消失而你不需要setEventAutoArrange(false)并且calander可以渲染所有事件而没有完成数据源提取,我就会发现问题。

我希望将来可以帮助某人。

- 编辑 -

似乎这并不适用于所有情况。