ページ送り

サーバが一ページ分のデータと総件数を返す場合の一覧画面です。全データがブラウザにある場合は一万行の一覧を参照してください。

Pager total: Store total perPage: Screen size page: page send: #goPage:

部品はデータを持たない

部品に渡すのは、総件数と現在のページ番号です。ボタンが押されると、部品は画面にページ番号を送ります。データの取得は画面が行います。

Screen >> goPage: n = self with: { page: n. rows: Store page: n size: Screen size }.

この例では、サーバの代わりに 143 件を持つクラスから読んでいます。実際のシステムでは Http get: になります。画面の書き方はどちらでも同じです。

#goPage: は画面のハンドラで、コンパイル時に検査されます。どのページ番号を送るかは部品が決め、ボタンごとに違う値が付きます。

表示

最初のページ、最後のページ、現在のページの前後二つを表示し、飛んだ部分には … を一つ入れます。ページ数に関わらず幅が変わらないので、ページを送ってもボタンの位置が動きません。

1 ページ目では「前へ」が、最後のページでは「次へ」が無効になります。disabled 属性は必要なときだけ付けます。

0 件でも 1 ページとして扱い、「0 件」と表示します。

状態

部品はアクタではなく、状態を持ちません。現在のページ番号と総件数は画面が持ち、描画のたびに部品へ渡します。画面はデータ取得のためにこの二つを持っているので、部品にも持たせると値が二重になります。