Я использую сетку и класс java для визуализации данных в строках, и все работает нормально, данные отображаются в сетке, но проблема заключается в том, когда вы нажимаете на вторую время, которое отображает данные в сетке, данные все еще там, и новые данные добавляются в строки. Я использую Jboss 4.2
Как очистить сетку от ZK
Это 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 класса Listener:
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();
}
}
Это GRID в index.zul
<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 записи, thats correct, всего 4 записей в базе данных, th e второй раз, когда нажата кнопка «Generar», отображено 8 записей (4x2), я пытаюсь поставить inboxGrid.getRows().getChildren().clear()
на кнопку; но все еще демонстрирует такое же поведение.
Вы были правы! getUpdatedData возвращает 8 элементов, потому что список, который отображает элементы в сетке, является глобальной переменной, я очищаю список, и все работает нормально. Спасибо за вашу помощь! – AndresMontj
Без проблем Андрес, рад, что я могу помочь вам! – Tim