Я пытаюсь прокрутить вниз до нижней части сетки после того, как модель была установлена.
1) Я установил модель:
myGrid.setModel(new ListModelList<Object>(myList));
2) я переопределяю средство визуализации строк
myGrid.setRowRenderer(new RowRenderer<Object>() {
@Override
public synchronized void render(Row row,final Object data, int index) throws Exception {
row.setStyle("commonCellPadding");
.
.
.
row.appendChild(htmlMessage);
}
});
3) Наконец, если список, используемый для установки модели, слишком велик (сетка в .zul имеет фиксированную высоту), я хочу показать последние результаты (в данном случае более свежие). Мне нужно автоматически прокручивать вниз после рендеринга. Как я могу это сделать?
Вещи, которые я пробовал
а) Вызов функции javascript после рендера, это не работает из-за того, что атрибут gridEle.scrollHeight возвращает фиксированную высоту сетки, установленную в зуле (или 0, если нет), а не высоту сетки после модели был установлен.
myGrid.addEventListener(ZulEvents.ON_AFTER_RENDER, new EventListener<Event>() {
public void onEvent(Event event) throws Exception
{
Clients.evalJavaScript("var gridEle = document.getElementById('"+myGrid.getUuid()+"-body"+"'); gridEle.scrollTop = gridEle.scrollHeight;alert(gridEle.scrollHeight);");
}
});