怀疑检票口......我正在使用DataView并且发布了以下错误:
"... Expected close tag is' <td wicket: id =" lblRowspan "> 'Possible attempt to embed component (s)' <input type =" text "placeholder =" Item "wicket: id =" txtNomeBem "class = "form-control" /> 'in the body of this component Which discards its body ... "
这个DataView中的情况如下使用ROWSPAN来合并一些单元格,如果我混合的行中没有任何类型的组件,100%效果很好,例如,如果我正在使用的行rowSpan写一句话有效。 ..但是当我在单元格中插入TextField组件时没有。
在我正在开发的应用程序中需要显示一个TextField以便该人输入一些信息,只是它总是抛出指向的异常。
这是我的代码: (HTML)
<tr wicket:id="dataGruposSelecionados">
<td wicket:id="lblRowspan">
<input type="text" placeholder="Item" wicket:id="txtNomeBem"
class="form-control" />
</td>
<tr/>
这是我的java
dataViewGruposSelecionados = new DataView<ItemBemDto>("dataGruposSelecionados", new Provider(listaDeGrupos)) {
@Override
protected void populateItem(Item<ItemBemDto> item) {
Label lblRowspan = new Label("lblRowspan",item.getModelObject().getNomeItemGrupo());
.
.
.
int tamanho = listaBens.size();
if(primeiroLoop)
{
lblRowspan.add(new AttributeAppender("rowspan", new Model<Integer>(tamanho), " "));
primeiroLoop = false;
}else{
lblRowspan.setVisible(false);
}
.
.
.
.
item.add(lblRowspan);
item.add(newTextFieldNomeItem(item));
}
}
正如我所说的,如果代替TextField它可以100%工作我将它留空或在HTML中输入内容,合并工作...但是当我在'td'中插入任何组件时抛出异常..
答案 0 :(得分:0)
<tr/>
应为</tr>
答案 1 :(得分:0)
我找到了答案:) 。 我没有使用标签来控制'rowspan'的Dataview,而是创建了一个接收ROWSPAN的WebMarkupContainer ......好吧,在我找到的HTML和java解决方案之下。
<td wicket:id="containerRowspan">
<div wicket:id="panelNomeGrupo">
<input type="text" placeholder="Item" wicket:id="txtNomeBem" class="form- control" />
</div>
</td>
Code Java:
WebMarkupContainer containerRowspan = new WebMarkupContainer("containerRowspan");
int tamanho = listaComTodosBens.size();
if(primeiroLoop || !item.getModelObject().getNomeItemGrupo().equalsIgnoreCase(nomeAnterior)){
containerRowspan.add(new AttributeAppender("rowspan", new Model<Integer>(tamanho), " "));
primeiroLoop = false;
}else{
containerRowspan.setVisible(false);
}
PanelNomeItem panel=new PanelNomeItem("panelNomeGrupo", item);
panel.setVisible(mostrarPainel);
containerRowspan.add(panel);
item.add(containerRowspan);