因此,如果我有一个列表视图,列表视图中的每个项目都有基于在AjaxLink的onClick上执行的逻辑的不同链接,我将如何为每个链接动态添加wicket:id?/ p>
例如:
item.addOrReplace(new ListView<String> ("listViewID" listViewIDs){
AjaxLink openLinktoPage = new AjaxLink("dynamicAjaxLinkId"){
@Override public void onClick(AjaxRequestTarget target){
String url = generateUrlBasedOnDynamicLinkImplementationNotImportant(listViewIDs.getModelObject());
useUrlToOpenWindowImplementationNotImportant(url);
}
}
}
用Html标记出来......
<tr wicket:id="listViewIDs">
<td>
<a href="not important">Some Link Text Here</a>
</td>
</tr>
看起来我将不得不在代码中动态生成html并将其附加到html标记。不知道如何做到这一点。
答案 0 :(得分:1)
无需生成HTML。这是Wicket中转发器的标准用例。
FailedToRegisterForRemoteNotifications
标记:
item.addOrReplace(new ListView<String> ("listView", listViewIDs) {
@Override protected void populateItem(final ListItem<String> item) {
AjaxLink openLinktoPage = new AjaxLink("link"){
@Override public void onClick(AjaxRequestTarget target){
// do something that uses item.getModelObject()
// the name "openLinkToPage" makes me think you may need BookmarkablePageLink instead
}
}
item.add(openLinktoPage);
}
}