Wicket:如何动态更改 PageableListView 的内容?

Wicket: How to change contents of PageableListView dynamically?

我有一个带有搜索字段的 html 页面和使用 PageableListView 显示的 table 视图。

数据存在于 userListForTable 列表中。 在 AjaxButton searchButtononSubmit() 方法中,dbService.getEmployeeByName(searchInputString) 方法 returns 一个新列表,我将其分配给 userListForTable 对象。

在执行此操作时,我假设当我将新列表分配给 userListForTable 时,PageableListView table 会自动更新,但这并没有发生。

有人可以帮忙吗?

努力:

  1. 如本 link 中所述,我尝试使用 pageableListView.removeAll(); 并设置 pageableListView.setReuseItems(true);

代码:

pageableListView = new PageableListView<UserModel>("rows", new PropertyModel<List<UserModel>>(this, "userListForTable" ), 8) {

        private static final long serialVersionUID = 1L;
        private ModalWindow modalWindow;

        @Override
        protected void populateItem(ListItem<UserModel> arg0) {
            // TODO Auto-generated method stub
            final UserModel userModel = (UserModel) arg0.getDefaultModelObject();
            arg0.add(new Label("name", userModel.getName()));
            arg0.add(new Label("gender", userModel.getGender()));
       }
}

searchButton

AjaxButton searchButton = new AjaxButton("searchButton") {

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            // TODO Auto-generated method stub
            super.onSubmit();
            //get search string
            searchInputString = searchInput.getSearchString();
            //clear userListForTable and populate new List items
            userListForTable = null;
            userListForTable = dbService.getEmployeeByName(searchInputString);
            pageableListView.removeAll();
        }
};

您似乎忘记将 pageableListView 添加到 AjaxRequestTarget target 以刷新您的 PageableListView