我正在使用網格和一類java將數據呈現給行,並且一切正常,數據顯示在網格中,但問題在於當您單擊第二個計算將數據呈現給網格的按鈕時,數據仍然存在,新數據將添加到行中。我使用Jboss 4.2
如何清潔ZK上的網格
這是RowRender的Java Class:
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條記錄在數據庫中,th第二次按下「generar」按鈕顯示8條記錄(4x2),我嘗試將inboxGrid.getRows().getChildren().clear()
放在按鈕上;但仍顯示相同的行爲。
你是對的! getUpdatedData返回8個項目,這是因爲將元素呈現給網格的列表是一個全局變量,我清除了列表並且一切正常。謝謝你的幫助! – AndresMontj
沒問題安德烈斯,很高興我能幫助你! – Tim