[Seasar-user:13689] Re: [teeda] ページ番号を並べるタイプのページング
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2008年 4月 11日 (金) 00:00:47 JST
小林 (koichik) です.
Date: Thu, 10 Apr 2008 22:45:10 +0900
From: "Mitsutaka Sato" <[E-MAIL ADDRESS DELETED]>
To: seasar-user <[E-MAIL ADDRESS DELETED]>
Subject: [Seasar-user:13687] [teeda] ページ番号を並べるタイプのページング
> 前 1 2 3 4 5 次
>
> というような形式で表示する方法ってありますでしょうか?
単に表示の話ということであれば,例えば
・HTML
<span id="isPrev">
<a id="goPrev" href="xxx.html?page=1">前</a>
</span>
<div id="pageItems">
<span id="isCurrent">
<span id="page-2">1</span>
</span>
<span id="isNotCurrent">
<a id="goXxx" href="xxx.html?page=1">
<span id="page-1" te:omittag="true">1</span>
</a>
</span>
</div>
<span id="isNext">
<a id="goNext" href="xxx.html?page=1">次</a>
</span>
・Page クラス
public int current; //現在のページ番号
public Integer[] pageItems; //ページの情報
public int page; //Teedaが繰り返しで設定
public int pageIndex; //Teedaが繰り返しで設定
public String initialize() {
current = page == 0 ? 1 : page;
pageItems = new Integer[] { 1, 2, 3, 4, 5 };
return null;
}
/** 「前」を表示する場合true */
public boolean isPrev() {
page = current - 1;
return page > 0;
}
/** 「次」を表示する場合true */
public boolean isNext() {
page = current + 1;
return page < pageItems.length + 1;
}
/** 現在のページ番号の場合true */
public boolean isCurrent() {
return pageIndex + 1 == current;
}
みたいな感じで.
# メーラで書いただけで試してないので怪しいかもですが.
current は現在しているページ番号 (1〜),
pageItems の内容は 1 からのページ番号ということで.
# その他の情報が必要なら (たぶん必要でしょう)
# Dto の配列または List にしてください.
isPrev()/isNext() で page を設定しているのが
少しトリッキーかも?
リンクをクリックするとパラメータの page が
Page クラスの page プロパティに設定されるので,
initialize() ではそれを current に設定してます.
--
<component name="koichik">
<property name="fullName">"Koichi Kobayashi"</property>
<property name="email">"[E-MAIL ADDRESS DELETED]"</property>
<property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
Seasar-user メーリングリストの案内