我是小门的新手,请有人帮助我。我在复选框周围有一个逻辑以显示或不显示。问题:当不显示复选框的逻辑时,通过添加显示:无需在代码中添加一个复选框元素时,由于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>
因此,在代码中,我有添加显示的其他逻辑:无需复选框元素,从视图中删除复选框,该复选框看起来像下面的
<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停留并在显示屏中引起空白。
关于如何解决此问题的任何想法。
谢谢。
如果不存在引用的孩子,则可以使用<wicket:enclosure>
删除HTML。检票口外壳。
您在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>