Wicket延迟加载ListView

时间:2017-11-22 14:33:51

标签: wicket

是否可以在Wicket中延迟加载ListView? 这对我来说意味着我可以在populateItem内加载并显示Item 0,并在呈现Item 0时继续Item 1。目前,我必须等到Items内处理所有populateItem

1 个答案:

答案 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如果必须显示许多内容,则将其分隔。