<listbox id="lb" width="100%" mold="paging" pageSize="10"
model="@{allUser}" use="com.zktest.TestListbox">
<listhead>
<listheader label="userId" />
<listheader label="userName" />
<listheader label="UserAge" />
</listhead>
</listbox>
比如,這個listbox已從table中讀出10條數據,我點一個"Add"按鈕,要在此listbox上增加一行listitem,現在的問題是,新的一行listitem倒是show出來了,但頁面報"Index: 10, Size: 10",后臺報錯信息為:
嚴重的: >>java.lang.IndexOutOfBoundsException: Index: 10, Size: 10
>> at java.util.ArrayList.RangeCheck(Unknown Source)
>> at java.util.ArrayList.get(Unknown Source)
>> at org.zkoss.zul.ListModelList.getElementAt(ListModelList.java:144)
>> at org.zkoss.zul.Listbox$Renderer.render(Listbox.java:1444)
>> at org.zkoss.zul.Listbox$Renderer.access$800(Listbox.java:1420)
>> at org.zkoss.zul.Listbox.renderItems(Listbox.java:1529)
>> at org.zkoss.zul.Listbox$ExtraCtrl.renderItems(Listbox.java:1760)
model="@{allUser}" use="com.zktest.TestListbox">
<listhead>
<listheader label="userId" />
<listheader label="userName" />
<listheader label="UserAge" />
</listhead>
</listbox>
比如,這個listbox已從table中讀出10條數據,我點一個"Add"按鈕,要在此listbox上增加一行listitem,現在的問題是,新的一行listitem倒是show出來了,但頁面報"Index: 10, Size: 10",后臺報錯信息為:
嚴重的: >>java.lang.IndexOutOfBoundsException: Index: 10, Size: 10
>> at java.util.ArrayList.RangeCheck(Unknown Source)
>> at java.util.ArrayList.get(Unknown Source)
>> at org.zkoss.zul.ListModelList.getElementAt(ListModelList.java:144)
>> at org.zkoss.zul.Listbox$Renderer.render(Listbox.java:1444)
>> at org.zkoss.zul.Listbox$Renderer.access$800(Listbox.java:1420)
>> at org.zkoss.zul.Listbox.renderItems(Listbox.java:1529)
>> at org.zkoss.zul.Listbox$ExtraCtrl.renderItems(Listbox.java:1760)
>>...
方法一:model="@{allUser}" 既然已经是数据绑定了,不如在方法中改成
public void onAdd()throws Exception{
alluser.add( User );
binder.loadAll();
}
在模型中添加,再loadAll页面也就有了的
方法二:可以先获取listbox的model,添加model的内容后再重新设置model
ListModelList model = (ListModelList) lb.getModel();
User user = new User();
model.add(user);
lb.setModel(model);