<table>
<tr>
<td>
<div wicket:id="id1">
<div wicket:id="draggable" />
</div>
</td>
<td>
<div wicket:id="id2">
<div wicket:id="draggable"/>
</div>
</td>
</tr>
</table>
考虑上面的标记,在 java 部分我有类似以下内容..
WebMarkupContainer con1 = new WebMarkupContainer("id1");
WebMarkupContainer con2 = new WebMarkupContainer("id2");
Draggable draggable = new Draggable<Void>("draggable");
con1.add(draggable)
con2.add(draggable)
但是当我导航页面时,我收到一个 Wicket 异常,指出“con1”没有“draggable”。
我是不是错过了什么?或者根本上是错误的?我知道不可能在同一父级下添加相同的标记。有任何类似的正确方法可以实现这一目标吗?
此外,我的目标是创建一个可拖动组件,一次并行拖动两个项目。
最佳答案
将具有父级的子组件添加到另一个父级会将其从第一个组件中删除并将其添加到第二个组件中。因此异常(exception)。
您需要创建两个单独的 Draggable 实例。
通常可拖动行为是通过 Wicket Behaviour 实现的。您可以通过这种方式重用非 Ajax 行为,即您可以将相同的实例添加到多个组件。
关于java - 我可以在标记页面的不同父项下添加相同的 Wicket 组件吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31475053/