我想更改按鈕單擊上的列表視圖的數據。Wicket替換ListView中的項目
這是我目前做的:
final PageableListView<Users> listview = new PageableListView<Users>("rows", displayList, 10) {
//....
protected void populateItem(final ListItem<Users> item) {
item.add(new Label("username").setOutputMarkupId(true));
// .. other fields
}
}
final IndicatingAjaxFallbackLink<MyPanel> sublist = new IndicatingAjaxFallbackLink<MyPanel>("sublist") {
public void onClick(AjaxRequestTarget target) {
displayList = // get new list
listview.setList(displayList);
target.addChildren(listview, Label.class);
}
};
add(sublist);
這工作,如果新的名單是完全的大小與舊名單相同。在任何其他情況下,我得到一個
Caused by: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
我該如何解決這個問題?
我整個列表添加到目標例如'target.add(列表視圖);'。在更新部分列表時,有一些知道ajax IE的問題。 – Martin
我已經試過了,但是listview不能被替換(據我所知):'這個組件是一箇中繼器,不能直接通過ajax重新繪製。相反,在層次結構中添加其父代或另一個標記容器。# – Markus