2013年2月13日水曜日

Ext.grid.Panelで縦スクロールを制御

Ext.grid.Panelで縦スクロールを制御のした方を調べたので、とりあえずメモ。

方法としては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 件のコメント: