ページネーションを使用したいのですが、やりましたが、必要な部分が得られません。私はいくつかの解決策を望んでいますが、まだ取得していません。
私がしていることは次のとおりです。
モデルのクエリ部分:
public static Page<User> page(int page, int pageSize, String sortBy, String order, String filter) {
return find.where()
.ilike("name", "%" + filter + "%")
.orderBy(sortBy + " " + order)
.findPagingList(pageSize)
.getPage(page);
}
ビュー パーツ:
@(currentPage: com.avaje.ebean.Page[User], currentSortBy: String, currentOrder: String, currentFilter: String,ud: String)
@****************************************
* Helper generating navigation links *
****************************************@
@link(newPage:Int, newSortBy:String) = @{
var sortBy = currentSortBy
var order = currentOrder
if(newSortBy != null) {
sortBy = newSortBy
if(currentSortBy == newSortBy) {
if(currentOrder == "asc") {
order = "desc"
} else {
order = "asc"
}
} else {
order = "asc"
}
}
// Generate the link
routes.paging.pag(newPage, sortBy, order, currentFilter)
}
@header(key:String, title:String) = {
<a class="@key.replace(".","_") header @if(currentSortBy == key) @{if(currentOrder == "asc") "headerSortDown" else "headerSortUp"}" href="@link(0,key)">@title</a>
}
@main("welcome to EXTR ") {
<div class="container-narrow">
<div class="masthead">
<ul class="nav nav-pills pull-right">
<li><a href="@routes.paging.extrad(ud)" >Extr resume</a></li>
<li><a href="@routes.signin.logou">Logout</a></li>
</ul>
<h3 class="muted">
welcome admin</b>
</h3>
</div>
<hr><div align="center">
<h1> @currentPage.getTotalRowCount() user found</h1>
@if(currentPage.getTotalRowCount == 0) {
<div class="well">
<em>Nothing to display</em>
</div>
} else {
<table border="1" >
<tr>
<th>@header("name","name")</th>
<th>@header("email","email")</th>
<th>@header("","")</th>
</tr>
<tbody>
@for(user <- currentPage.getList) {
<tr>
<td><a href="">@user.name</a></td>
<td>
@user.getEmail()
</td>
<td><a href="@routes.update.del(user.id)" class="btn success" style="color:#008000; ">delete</a></td>
</tr>}
</tbody>
</table>
<div id="pagination" class="pagination">
<ul>
@if(currentPage.hasPrev) {
<li class="prev">
<a href="@link(currentPage.getPageIndex - 1, null)">← Previous</a>
</li>
} else {
<li class="prev disabled">
<a>← Previous</a>
</li>
}
@for(i <- 0 until currentPage.getTotalPageCount()){
<li><a href="@link(i, null)">@(i+1)</a></li>
}
@if(currentPage.hasNext) {
<li class="next">
<a href="@link(currentPage.getPageIndex + 1, null)">Next →</a>
</li>
} else {
<li class="next disabled">
<a>Next →</a>
</li>
}
</ul>
</div>
}
</div>
</div>
}
そして、私が得ているのは:
しかし、私が欲しいのは
一度に5ページを表示したいのですが、5ページ目をクリックすると再び5〜10ページになります。しかし、私のページネーションは一度にすべてのページを取得しています。
数値をこの形式で表示したい..
1 2 3 4 5 ^
5 を押すと、5 から 10 まで表示されるはずです
5 6 7 8 9 10
最大レコードが利用可能になるまで。数値を表示するためにこれを行う方法を知りたいだけです。
これを行うためのアイデアをください。