如何访问没有 wicket:id 的 HTML 元素



我是小门的新手,请有人帮助我。我在复选框周围有一个逻辑以显示或不显示。问题:当不显示复选框的逻辑时,通过添加显示:无需在代码中添加一个复选框元素时,由于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> 

最新更新