是否可以在Wicket中延迟加载ListView
?
这对我来说意味着我可以在populateItem
内加载并显示Item 0
,并在呈现Item 0
时继续Item 1
。目前,我必须等到Items
内处理所有populateItem
。
答案 0 :(得分: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
如果必须显示许多内容,则将其分隔。