0

CalendarSmartGWT オブジェクトが適切な場所に表示されないという1 つの問題に直面しCalendarEventsています。表示する必要がある 2 つのイベントがあります。

イベント ID ::: 1 :: 開始日 :: 月 3 月 11 日 16:30:00 IST 2013 :: 終了日 :: 月 3 月 11 日 19:00:00 IST 2013

イベント ID ::: 2 :: 開始日 :: 月 3 月 11 日 20:00:00 IST 2013 :: 終了日 :: 月 3 月 11 日 23:06:00 IST 2013

Image1 Shows : カレンダー イベント イベント 2 の詳細を表示していますが、間違った場所に配置されています

Image2 Shows : カレンダー イベント イベント 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に設定されている場合、同じ開始時刻と終了時刻を共有するイベントを表示できないことに気付くまで、その呼び出しは問題を解決しました. OPで示されているようにsmartgwtがイベントをレンダリングする理由がわかりません。ただし、データソースのフェッチが完了すると、問題がなくなり、不要になり、calander がすべてのイベントを問題なくレンダリングできることがわかりcalendar.markForRedraw();ましDSCallbacksetEventAutoArrange(false)

これが将来誰かに役立つことを願っています。

- 編集 -

これはすべてのケースで機能するわけではないようです。

于 2014-01-10T07:28:56.260 に答える