Wicket 延迟加载一个 ListView
Wicket lazy load a ListView
是否可以在 Wicket 中延迟加载 ListView
?
这对我来说意味着我可以在 populateItem
中加载和显示 Item 0
,当呈现 Item 0
时,然后继续 Item 1
。目前我必须等到所有 Items
在 populateItem
.
内处理完毕
正如 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
如果你必须显示很多,它会分离组件。
是否可以在 Wicket 中延迟加载 ListView
?
这对我来说意味着我可以在 populateItem
中加载和显示 Item 0
,当呈现 Item 0
时,然后继续 Item 1
。目前我必须等到所有 Items
在 populateItem
.
正如 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
如果你必须显示很多,它会分离组件。