如何动态地将Ajax链接添加到列表视图

时间:2017-10-04 22:51:55

标签: listview wicket-1.6

因此,如果我有一个列表视图,列表视图中的每个项目都有基于在AjaxLink的onClick上执行的逻辑的不同链接,我将如何为每个链接动态添加wicket:id?

例如:

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标记。不知道如何做到这一点。

1 个答案:

答案 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);
  }
}