Wicket에서 ListView
을 게으른로드 할 수 있습니까? 내 말은 populateItem
안에 Item 0
을로드하고 표시 할 수 있으며 Item 0
이 렌더링되면 Item 1
으로 진행한다는 것을 의미합니다. 현재 모든 Items
이 populateItem
내부에서 처리 될 때까지 기다려야합니다.Wicket lazy load a ListView
0
A
답변
3
RobAu가 언급 한대로 코딩시 최소한의 변경으로 AjaxLazyLoadPanel
(wicket-extension)을 사용하여이 작업을 수행 할 수 있습니다. 모델로 Item
이 있다고 가정 해 보겠습니다.
List<Item> itemList = new ArrayList<>();
itemList.add(new Item());
itemList.add(new Item());
ListView<Item>itemListView = new ListView<Item>("itemListView",ItemList) {
@Override
protected void populateItem(final ListItem<Item> listItem) {
listItem.add(new AjaxLazyLoadPanel("ViewItemPanel") {
@Override
public Component getLazyLoadComponent(String s) {
// Add a seperate panel if you are listing out many values
return new ItemPanel(s,listItem.getModelObject());
}
});
}
};
add(itemListView);
ItemPanel
많은 정보를 표시해야하는 경우 구성 요소를 분리해야합니다.
+0
이것이 작동하는 동안 이상한 결과를 얻습니다. 예를 들어 문자열과 레이블이 먼저 렌더링되고 나중에 이미지가 렌더링되어 내 웹 사이트의 흐름이 손상됩니다. – greedsin
'AjaxLazyLoadPanel'을 사용하여 항목을 렌더링 할 수 있습니까? – RobAu