モデルが設定された後、グリッドの一番下までスクロールしようとしています。
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);");
}
});