方法としては2つ あるみたい。
a) Ext.core.ElementのscrollIntoView()を利用
Ext.Element(grid.getView().getNode(インデックス)).scrollIntoView();
b)Ext.grid.ViewのfocusRow()を利用
grid.getView().focusRow(インデックス);
b)の方は、すでに画面のどこかに表示している場合は、とくに変化がないので、任意行をGridの一番上に持ってきたい場合は、一度最終行を表示させた後で、表示したい行を指定するといいかも。
Gridの初期表示時に任意行を先頭に表示させる場合は、gridパネルのlistenersのイベントを登録して、その中で、上記の指定をすればよさそう。
色々と試したけど、afterlayoutイベントではうまく行った。
ただgridパネルを最初に表示させる際に、2度afterlayoutイベントがコールされてる動きをしていたので、工夫が必要かも。
a)で処理させようとすると、動作上は動いているように見えるけど、なぜか2回目のところで、エラーになってしまう。
0 件のコメント:
コメントを投稿