Wicket: Как динамически изменять содержимое PageableListView? - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть html-страница с полем поиска и табличным представлением, отображаемым с помощью PageableListView.

Данные присутствуют в списке userListForTable.В методе onSubmit() AjaxButton searchButton метод dbService.getEmployeeByName(searchInputString) возвращает новый список, который я назначаю для объекта userListForTable.

При этом я предполагал, что при назначении нового списка для userListForTable таблица PageableListView будет обновляться автоматически, но этого не происходит.

Может кто-нибудь помочь сэто?

Усилия:

  1. Как уже упоминалось в этой ссылке , я попытался использовать 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();
        }
};

1 Ответ

1 голос
/ 27 сентября 2019

вы, кажется, забыли добавить pageableListView к AjaxRequestTarget target, чтобы обновить PageableListView.

...