Wicket 延迟加载一个 ListView

Wicket lazy load a ListView

是否可以在 Wicket 中延迟加载 ListView? 这对我来说意味着我可以在 populateItem 中加载和显示 Item 0,当呈现 Item 0 时,然后继续 Item 1。目前我必须等到所有 ItemspopulateItem.

内处理完毕

正如 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 如果你必须显示很多,它会分离组件。