我对Image和ContextRelativeResource有一个简单的问题。
我有一个DataTable和一个覆盖了popupateItem的单元格:
item.add(new ImgPanel(componentId, new ContextRelativeResource("img/erogata.png")));
DataTabe使用SPAN标记渲染单元格,因此我无法直接添加图像,因此我必须使用Panel。
小组非常简单:
<wicket:panel>
<img wicket:id="status" />
</wicket:panel>
使用此构造函数:
public ImgPanel(String id, ContextRelativeResource resource) {
super(id);
add(new Image("status", resource));
}
图像正确显示但Wicket发出关于未找到组件“状态”的警告:
Could not find component 'sintTable:table:body:rows:1:cells:9:cell:status' on page
注意:通过Ajax调用更新组件时会引发此问题。如果使用页面呈现组件,则没有例外。如果组件是由Ajax以dinamically方式添加的,那么它就会升级。
任何线索?
由于
答案 0 :(得分:0)
不要在构造函数中添加Image
,而是将其添加到onInitialize()
中。这样,当ajax调用初始化所有子项时,它将被刷新。
public ImgPanel(String id, ContextRelativeResource resource) {
super(id);
}
@Override
protected void onInitialize() {
add(new Image("status", resource));
}
修改强>
其他可能的问题: