ページングページ番号のパラメーターをpageとする。ページ番号は1から始まる。1画面で表示する件数は30件とする。 アクションクラス以下のように、DBからデータを取得する時にページ番号を渡す。結果セットからページャーオブジェクトを取得し、stashに入れる。 sub list { my $page = int($c->req->param('page') || 1); $rs = $rs->search(undef,{ page => $page, rows => 30, order_by => 'regist_date desc' }); $c->stash->{pager} = $rs->pager; } テンプレートファイルstashにあるpagerオブジェクトからページ番号が取り出せるが、uri_with()を使うことにより、このページをリクエストされた際のクエリストリングが再現される。 <div> <a href="[% Catalyst.request.uri_with(page=>pager.first_page) %]"><<</a> <a href="[% Catalyst.request.uri_with(page=>pager.previous_page) %]"><</a> <a href="[% Catalyst.request.uri_with(page=>pager.next_page) %]">></a> <a href="[% Catalyst.request.uri_with(page=>pager.last_page) %]">>></a> <span>[ [% pager.current_page %] / [% pager.last_page %] ]</span> </div> |
|