<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="test_paging.aspx.vb" Inherits="testdb_mssql.test_paging" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<div id="gv_p1" runat="server" style=" width:500px;">
分頁顯示在此處
</div>
</div>
</form>
</body>
</html>
test_paging.aspx.vb
Public Class test_paging
Inherits System.Web.UI.Page
Dim this_page As Integer = 1 '目前在第幾頁
Dim maxpage As Integer = 10 '最多顯示頁數(不變動)
Dim showpage As Integer = 10 '最多顯示頁數
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
If (Not Request("p") Is Nothing) Then
If Regex.IsMatch(Request("p").ToString, "^\d+$") = False Then '數字會回傳true
'不是數字,設定回1
this_page = 1
Else
this_page = CInt(Request("p").ToString)
End If
Else
this_page = 1
End If
Dim rows_count As Integer = 2701 '假設此變數是資料的總筆數
Dim str_temp1 As String = String.Empty
's1開始頁數;tot_x1 全部的頁數
Dim s1 As Integer = 1, tot_x1 As Integer = 0
tot_x1 = Fix(rows_count / 100) '總筆數/每一頁多少筆數
'總筆數 求餘數,餘數>0就加1頁
If (CInt(rows_count) Mod 100) > 0 Then
tot_x1 = tot_x1 + 1
End If
'==========================
'頁數變動
If this_page >= 7 Then
If ((tot_x1 + 1) - ((this_page - 6) + 1)) >= maxpage Then
s1 = (this_page - 6) + 1
showpage = maxpage + (this_page - 6)
Else
s1 = ((this_page - 6) + 1) + (((tot_x1 + 1) - ((this_page - 6) + 1)) - maxpage)
showpage = tot_x1
End If
Else
'預設
s1 = 1 '第一頁開始
showpage = maxpage '顯示的頁數
End If
'==========================
Dim str_ago As String = String.Empty, str_back As String = String.Empty, str_num As String = String.Empty
For i As Integer = s1 To tot_x1
str_num = CStr(i)
If str_num.Length = 1 Then
str_num = "0" & str_num
End If
If i = this_page Then
str_temp1 = str_temp1 & "<a style=" & Chr(34) & "text-decoration:none" & Chr(34) & ">" & str_num & "</a> "
If i > 1 Then
str_ago = "<a href=" & Chr(34) & "test_paging.aspx?p=" & (i - 1) & Chr(34) & " style=" & Chr(34) & "text-decoration:none" & Chr(34) & "><</a> "
End If
If i < tot_x1 Then
str_back = "<a href=" & Chr(34) & "test_paging.aspx?p=" & (i + 1) & Chr(34) & " style=" & Chr(34) & "text-decoration:none" & Chr(34) & ">></a> "
End If
Else
str_temp1 = str_temp1 & "<a href=" & Chr(34) & "test_paging.aspx?p=" & i & Chr(34) & ">" & str_num & "</a> "
End If
If i = showpage Then
Exit For
End If
Next
Me.gv_p1.InnerHtml = str_ago & str_temp1 & str_back
End If
End Sub
End Class
沒有留言:
張貼留言