2017-10-04 11 views
0

リストビュー内の各アイテムのリストビューをAjaxLinkのonClickで実行されるロジックに基づいて別のリンクにすると、どのように動的にウィッケットを追加できますか?リンク?リストビューにAjaxリンクを動的に追加する方法

例えば

:そうのようにマークアップされたHTMLで

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

...

<tr wicket:id="listViewIDs"> 
    <td> 
     <a href="not important">Some Link Text Here</a> 
    </td> 
</tr> 

は、私がコードで動的にHTMLを生成し、それを追加する必要がありますするつもりですように見えますHTMLマークアップ。それをどうやって行うかわからない。

答えて

1

HTMLを生成する必要はありません。これは、Wicketのリピーターのためのかなり標準的な使用例です。

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

とマークアップ:面白い、面白い

<tr wicket:id="listView"> 
    <td> 
     <a wicket:id="link">Some Link Text Here</a> 
    </td> 
</tr> 
+0

。なぜ私のリンクがうまくいかないのだろうか。 – SoftwareSavant

+0

エラーがありますか?または、リンクは機能していませんか? "on notClick"を定義してください –

+0

私のonClickはトリガーしません。 – SoftwareSavant

関連する問題