我对 smartgwt 日历工具有疑问,我已经通过类日历的受保护方法 getdaybodyhtml() 对其进行了自定义,以在一个月中的某些日子分配特殊图标标志,除了在上显示日历时的一件事外,一切正常chrome(所有版本)IE(7,8,9)和FF(直到14.0.1),但是当我在FF(15到19之间)上显示日历时,不显示此标志图标。我对代码进行了跟踪,发现我在 getdaybodyhtml() 方法中定义的 html 代码没有打印出来。
我在 smartgwt 上寻找任何类似的问题,但我没有找到任何相关的东西。将收到任何帮助。(对不起,如果我的英语不太好,是我的第二语言)
这是一段代码:
private Calendar calendar = new Calendar(){
@Override
@SuppressWarnings("deprecation")
protected String getDayBodyHTML(Date date, CalendarEvent[] events, Calendar calendar, int rowNum, int colNum) {
String value = defaultMessage != null ? defaultMessage : date.getDate()+"";
// The "events" are the events of the day
List<CalendarEvent> calendarEvents = new ArrayList<CalendarEvent>(Arrays.asList(events));
if(calendarEvents != null && calendarEvents.size() > 0) {
// Removing the tooltip and the excluded colours
removeTooltipsFromCalendar(calendar,date);
removeExcludedColoursFromCalendar(calendarEvents);
if(calendarEvents.size() == 1){
// Description contains the colour
String colour = calendarEvents.get(0).getDescription();
value = imgHTML(COASTAL_IMAGES_DIR+colour+COASTAL_IMAGE_SUFFIX, colourWidth, colourHeight, "images", "class='handCursor'", null);
}else if(calendarEvents.size() > 1){
// Might have two vessels going to the same port in the same day
Set<String> colours = new HashSet<String>();
for(CalendarEvent event : calendarEvents){
// Description contains the colour
colours.add(event.getDescription());
}
int numberOfPorts = colours.size();
for(String colour : colours){
value += "<div>";
value += imgHTML(COASTAL_IMAGES_DIR+colour+COASTAL_IMAGE_SUFFIX, colourWidth, colourHeight/numberOfPorts, "images", "class='handCursor'", null);
value += "</div>";
}
}else{
value = defaultMessage != null ? defaultMessage : date.getDate()+"";
}
}
return value;
}
};
PD:在所有版本的 chrome 和 IE 中,这段代码:
value += "<div>";
value += imgHTML(COASTAL_IMAGES_DIR+colour+COASTAL_IMAGE_SUFFIX, colourWidth, colourHeight/numberOfPorts, "images", "class='handCursor'", null);
value += "</div>";
打印正常,在 14 版之前的 firefox 中打印正常,但在 ff 中从 15 到 19 不打印“div”和“image”。我已经看到代码抛出了萤火虫,而 div 只是没有出现在那个 firefox 版本(15-19)中。
PD:它也不适用于 IE 10 的上次更新。