我有一个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版本打印好了,但在ff从15到19不打印“div”和“图像”。我已经看到代码抛出firebug和div只是在firefox版本中没有apear(15-19)。
PD:它也不适用于IE 10的上次更新。
答案 0 :(得分:0)
您是否能够在sample in SmartGWT showcase中看到图标。
截至3月31日,我可以在4月2日,4月3日,4月4日和4月5日看到上面样本中的图标。 此示例中使用的CalendarEvent实例将在当前日期之前的2,3,4和5天创建。
我正在使用FireFox 19.0.2
答案 1 :(得分:0)
最后我发现了这个问题。我不知道为什么但是在重新发布的版本的Firefox中,在14版本之后,gwt日历(v 2.1)会自动重复两次打印日历,所以当它第二次打印时,它没有里面的图像就做了日子。
解决方案:手动创建代码以停止两次打印。