Wicket:如何动态更改 PageableListView 的内容?
Wicket: How to change contents of PageableListView dynamically?
我有一个带有搜索字段的 html 页面和使用 PageableListView
显示的 table 视图。
数据存在于 userListForTable
列表中。
在 AjaxButton searchButton
的 onSubmit()
方法中,dbService.getEmployeeByName(searchInputString)
方法 returns 一个新列表,我将其分配给 userListForTable
对象。
在执行此操作时,我假设当我将新列表分配给 userListForTable
时,PageableListView
table 会自动更新,但这并没有发生。
有人可以帮忙吗?
努力:
- 如本 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
。
我有一个带有搜索字段的 html 页面和使用 PageableListView
显示的 table 视图。
数据存在于 userListForTable
列表中。
在 AjaxButton searchButton
的 onSubmit()
方法中,dbService.getEmployeeByName(searchInputString)
方法 returns 一个新列表,我将其分配给 userListForTable
对象。
在执行此操作时,我假设当我将新列表分配给 userListForTable
时,PageableListView
table 会自动更新,但这并没有发生。
有人可以帮忙吗?
努力:
- 如本 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
。