在设置模型后,我试图向下滚动到网格的底部。
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 中的网格具有固定高度)我想显示最后的结果(在这种情况下是最近的)。我需要在渲染后自动向下滚动。我怎样才能做到这一点?
我尝试过的事情
a) 在渲染后调用 javascript 函数,这不起作用,因为 gridEle.scrollHeight 属性返回 zul 中设置的网格的固定高度(如果不是,则返回 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);");
}
});