編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

ページング

ページ番号のパラメーターを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) %]">&lt;&lt;</a>
<a href="[% Catalyst.request.uri_with(page=>pager.previous_page) %]">&lt;</a>
<a href="[% Catalyst.request.uri_with(page=>pager.next_page) %]">&gt;</a>
<a href="[% Catalyst.request.uri_with(page=>pager.last_page) %]">&gt;&gt;</a>
<span>[ [% pager.current_page %] / [% pager.last_page %] ]</span>
</div>

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2007-09-04 (火) 01:32:42 (3790d)