I wasn't using the "setReuseItems" property at all, but tried to set it to false: no change. Here's the code:
serviceContainer = new WebMarkupContainer("serviceData"); serviceContainer.setOutputMarkupId(true); serviceContainer.add(new AjaxSelfUpdatingTimerBehavior(Duration.seconds(15)){ protected void onPostProcessTarget(AjaxRequestTarget target){ try { services = administrationService.updateServices(uniqueId, midm, userMidm); logger.debug("{}:{}: Services refreshed for user " + username, uniqueId, midm); updateCounter ++; //stop update after 15 minutes if (updateCounter > 60){ logger.debug("{}:{}: Stopped service self updating behavior", uniqueId, midm); stop(target); } } catch (Exception e) { logger.debug("{}:{}: Unable to refresh the service view for user " + username, uniqueId, midm); warn("The system is unable to refresh the service view. Please reload the user."); } target.add(feedback); } }); PageableListView<Service> serviceList = new PageableListView<Service>("serviceList", new PropertyModel<List<Service>>(ServicesTabPanel.this, "services"), ELEMENTS_PER_PAGE) { @Override protected void populateItem(ListItem<Service> item) { final Service service = item.getModelObject(); final String serviceType = service.getServiceType(); item.add(new Label("serviceType", new PropertyModel(item.getModel(), "serviceType"))); item.add(new Label("login", new PropertyModel(item.getModel(), "serviceLogin"))); item.add(new Label("context", new PropertyModel(item.getModel(), "serviceContext"))); item.add(new Label("status", new PropertyModel(item.getModel(), "accountStatusWebString"))); item.add(new Label("syncDate", new PropertyModel(item.getModel(), "timestamp"))); item.add(new Label("expireDate", new PropertyModel(item.getModel(), "serviceExpireDate"))); if (service.isIntegrable()) item.add(new Label("integratable", "true")); else item.add(new Label("integratable", "false")); if (service.isIntegrated()) item.add(new Label("integrated", "true")); else item.add(new Label("integrated", "false")); item.add(new AjaxLink("syncButton"){ public void onClick(AjaxRequestTarget target) { try { logger.info("{}:{}: Synchonizing " + serviceType + " services for " + userMidm, uniqueId, midm); administrationService.syncMidasUserService(uniqueId, midm, userMidm, serviceType); success("Synchronized Service "+serviceType); } catch (Exception e) { logger.error(uniqueId + ": Caught an exception during admin sync service " + serviceType, e); error("An error occurred while trying to synchronize service " + serviceType); } target.add(feedback, serviceContainer); } }); addRemoveServiceLink(item, service); } private void addRemoveServiceLink(ListItem item, final Service service){ AjaxLink removeServiceLink = new AjaxLink("removeServiceLink"){ public void onClick(AjaxRequestTarget target) { int userMidm = service.getMidm(); try { administrationService.removeServiceFromUser(uniqueId, midm, userMidm, service); success("Successfully removed service " + service.getServiceType() + "(login " + service.getServiceLogin() +") from current user."); services.remove(service); } catch (UnavailableDataSourceException e) { error("A database error occurred while trying to remove the service " + service); } target.add(feedback, serviceContainer); } }; if (!isAccountChangePermitted) removeServiceLink.setVisible(false); item.add(removeServiceLink); } }; serviceContainer.add(serviceList); AjaxPagingNavigator serviceNavigator = new AjaxPagingNavigator("serviceNavigator", serviceList); if (services.size() > ELEMENTS_PER_PAGE) serviceNavigator.setVisible(true); else serviceNavigator.setVisible(false); serviceContainer.add(serviceNavigator); add(serviceContainer); -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/PageableListView-item-removal-tp4657283p4657290.html Sent from the Users forum mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org