0

我在 SmartGWT 上遇到一个问题Calendarojects 没有显示CalendarEvents在正确的位置 我有两个事件需要显示

事件 ID ::: 1 :: 开始日期 :: Mon Mar 11 16:30:00 IST 2013 :: END DATE :: Mon Mar 11 19:00:00 IST 2013

事件 ID ::: 2 :: 开始日期 :: 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();
4

2 回答 2

0

日历集setEventAutoArrange(false)可以解决这个问题。

于 2013-04-02T05:14:17.603 回答
0

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

我希望这对将来的某人有所帮助。

- 编辑 -

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

于 2014-01-10T07:28:56.260 回答