我正在使用网格和 java 类将数据呈现到行中,一切正常,数据显示到网格中,但问题是当您第二次单击将数据呈现到网格的按钮时,数据仍然存在并且新数据被添加到行中。我正在使用Jboss 4.2
这是 RowRender Java 类:
import org.zkoss.zul.Label;
import org.zkoss.zul.Row;
import org.zkoss.zul.RowRenderer;
public class MyRowRenderer implements RowRenderer<Object> {
@Override
public void render(final Row row, final java.lang.Object data, int arg2)
throws Exception {
String[] ary = (String[]) data;
for(int i=0;i<ary.length;i++){
new Label(ary[i]).setParent(row);
}
}
}
这是 Java 类监听器的一部分:
public void onClick$generar(Event e) {
try {
if(fecha.getValue()==null){
Messagebox.show("Ingresa una fecha valida MM-yyyy", "Error", Messagebox.OK, Messagebox.ERROR);
}else{
SimpleDateFormat formato = new SimpleDateFormat("yyyy-MM-dd");
ffecha = formato.format(fecha.getValue()).substring(0, 7);
String Order = orderby.getSelectedItem().getValue().toString();
String Modo = modo.getSelectedItem().getValue().toString();
inboxGrid.setModel(new ListModelList(getUpdatedData(ffecha, Order, Modo)));
}
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}
}
这是 index.zul 中的 GRID
<grid id="inboxGrid" mold="paging" pageSize="15"
rowRenderer="com.app.reports.MyRowRenderer"
emptyMessage="Sin Registros!">
<auxhead>
<auxheader colspan="5" class="topic">
REPORTE MENSUAL
</auxheader>
</auxhead>
<columns>
<column width="100px" label="CLAVE" align="center" />
<column label="SUCURSAL" align="center" />
<column width="100px" label="PAGINAS"
align="center" />
<column width="100px" label="EDO CUENTA"
align="center" />
<column width="100px" label="IMPRESION"
align="center" />
<column width="100px" label="MENSAJERIA"
align="center" />
<column width="100px" label="TOTAL" align="center" />
</columns>
</grid>
第一次显示4条记录,没错,数据库中只有4条记录,第二次按下“generar”按钮显示8条记录(4x2),我试着放上inboxGrid.getRows().getChildren().clear()
按钮;但仍然表现出相同的行为。