だいぶ前にSOQLでOFFSET機能が使えるようになりました。これでページング機能の実装が少し簡単にできるようになったみたいです。・・なのですが実際に試したことがなかったので今更ですがちょっと試してみました。
ソースはこんな感じです。
画面はこんな感じです。
これでボタンをクリックしてリスト内容が切り替わることを確認できました。一度に取得する件数も減らせるのでパフォーマンスも向上するのではないかなと思います。
ちょっと試してみてうまくいかなかった箇所があるのですが、最後ページの判定が思うようにできませんでした。最初のページかの判定はこの処理だとpageNoが0のときというように判定すればいいと思うのですが、最後の場合の判定方法が思いつきませんでした。
select count()を実行して総件数と比較するような判定という感じで考えていたのですが、それもうまくできなかったので何かいい方法がないかなーと思ってます。
とりあえずOFFSET機能はこんな感じです。うまく使えばすごく便利そうです。