现在的位置: 首页 > 综合 > 正文

在已有数据的listbox中新增一行listitem

2013年10月13日 ⁄ 综合 ⁄ 共 1108字 ⁄ 字号 评论关闭

<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}" 既然已经是数据绑定了,不如在方法中改成 
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);


抱歉!评论已关闭.