2017-10-04 1 views
0

목록보기의 각 항목에 listview를 사용하면 AjaxLink의 onClick에서 실행되는 논리를 기반으로하는 다른 링크가 어떻게 동적으로 wicket을 추가합니까? 링크?목록 뷰에 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 not working"을 정의하십시오. –

+0

내 onClick이 실행되지 않습니다. – SoftwareSavant

관련 문제