表示↓
1 2 3 4 5 ...次へ という風に最大5ページまで表示し残りは「...」と作成したいのですがご教示よろしくお願いします。
Dim iPageSize '1ページに表示する項目数
Dim iPage 'ページ番号
Dim iRecordCount '検索結果の全行数
<%
'*** 1ページに表示する商品数を取得する
iPageSize = CInt(Request.QueryString("pageSize"))
If iPageSize = 0 Then
iPageSize = 100
End If
'*** 表示するページ値を取得する
iPage = CInt(Request.QueryString("page"))
If iPage = 0 Then
iPage = 1
End If
Session("iPage") = iPage
%>
~省略~
<% If iPage > 1 Then %>
<A HREF="<%= Request.ServerVariables("SCRIPT_NAME") %>?page=<%= iPage - 1 %>">前へ</A>
<% End If %>
<% If iPage < iPageCount Then %>
<A HREF="<%= Request.ServerVariables("SCRIPT_NAME") %>?page=<%= iPage + 1 %>">次へ</A>
<% End If %>
<% '*** ページ番号を表示する
For i = 1 To iPageCount
If i = iPage Then %>
<FONT SIZE="+1"><A HREF="<%= Request.ServerVariables("SCRIPT_NAME") %>?page=<%= i %>"><I><%= i %></I></A></FONT>
<%
Else %>
<FONT SIZE="+1"><A HREF="<%= Request.ServerVariables("SCRIPT_NAME") %>?page=<%= i %>"><%= i %></A></FONT>
<%
End If
Next
End Sub
%>
<% Dim iRangeOfPageNum '表示するページ番号の範囲(現ページの前後数、×2+1が表示数) Dim iBeginOfPageNum Dim iEndOfPageNum iRangeOfPageNum = 2 ~省略~ iEndOfPageNum = iPage + iRangeOfPageNum '現在ページから指定(2)ページ後のページ番号までの表示とする If iEndOfPageNum <= iRangeOfPageNum*2 Then '☆最低でもiRangeOfPageNum*2 +1ページを表示するように修正する iEndOfPageNum = iRangeOfPageNum*2 +1; '☆ End If '☆ If iEndOfPageNum > iPageCount Then '最終ページを過ぎていたら修正する iEndOfPageNum = iPageCount End If iBeginOfPageNum = iEndOfPageNum - iRangeOfPageNum*2 '表示する最後のページ番号の指定(2)ページ前のさらに指定(2)ページ前(*2)からの表示とする If iBeginOfPageNum > 1 Then '1ページ目より後ろからなら省略文字を表示する %> ... <% Else '1ページ目より後ろでない(前である)ならば修正する iBeginOfPageNum = 1 End If '*** ページ番号を表示する For i = iBeginOfPageNum To iEndOfPageNum If i = iPage Then %> <FONT SIZE="+1"><A HREF="<%= Request.ServerVariables("SCRIPT_NAME") %>?page=<%= i %>"><I><%= i %></I></A></FONT> <% Else %> <FONT SIZE="+1"><A HREF="<%= Request.ServerVariables("SCRIPT_NAME") %>?page=<%= i %>"><%= i %></A></FONT> <% End If Next '表示したページ番号よりまだ後ろがあるなら省略文字を表示する If iEndOfPageNum < iPageCount Then %> ... <% End If End Sub %>