我是wicket的新手,请谁帮我出个主意。我有一个关于显示或不显示复选框的逻辑。问题:如果启用了不显示复选框的逻辑,即在代码中动态地向复选框元素添加display:none,则会出现一个空白,因为复选框周围有td。
我的html看起来像
<span wicket:id="checkgroup">
<table>
<tr wicket:id="srow" >
<td><input type="checkbox" wicket:id="scheck"/></td>
<td><img wicket:id="sicon"></img></td>
</tr>
</table>
</span>因此,在代码中,我有if else逻辑,用于向复选框元素添加display:none,该元素将从视图中删除复选框,如下所示
<span wicket:id="checkgroup">
<table>
<tr wicket:id="srow" >
<td><input type="checkbox" wicket:id="scheck" style="display:none"/></td>
<td><img wicket:id="sicon"></img></td>
</tr>
</table>
</span>
final CheckGroup<Scope> checkGroup = new CheckGroup<>("checkGroup",
new ArrayList<> ());
ListView<Scope> listView = new ListView<Scope>
("srow", sList);
@Override
protected void populateItem(final ListItem<S> item)
{
Check<S> check = new Check<>("scheck", item.getModel(), checkGroup);
if(defaultscope)
{
check.add(new AttributeModifier("style","display:none"));
}
item.add(check);
} 因此,现在我的复选框消失了,但周围的td仍然存在,并导致显示中出现空白。
关于如何处理这个问题的任何想法。
谢谢。
发布于 2017-05-31 04:54:20
如果引用的子项不存在,则可以使用<wicket:enclosure>删除html。wicket enclosure.
您在populateItem中的代码可能如下所示:
Check<S> check = new Check<>("scheck", item.getModel(), checkGroup);
if(defaultscope)
{
check.setVisible(false);
}
item.add(check);您的标记将如下所示:
<tr wicket:id="srow" >
<wicket:enclosure>
<td><input type="checkbox" wicket:id="scheck"/></td>
</wicket:enclosure>
<td><img wicket:id="sicon"></img></td>
</tr> https://stackoverflow.com/questions/44270160
复制相似问题