用vb.net做分页显示的功能
(1)首先定义几个变量Dim pageIndex As Integer
Dim pageSize As Integer = 20
Dim totalPage As Integer
Dim totalRecord As Integer
(2)然后写显示页码的函数
Sub xianShiYeMa()
Dim leiBie1 As String = Request("leiBie")
pageIndex = Request("pageIndex")
Dim i As Integer
'第一次访问网页没有传进pageIndex的值,初始化pageIndex = 1
If Request("pageIndex") = "" Then
pageIndex = 1
End If
'对于页码的显示,要求只显示10个页码
If totalPage <= 10 Then
i = 1
Do While i <= totalPage
If pageIndex = i Then
Response.Write("<a class='juanZeng_xianShi_yeMa1' href='./xianShi.aspx?pageIndex=" & pageIndex & "&leiBie=" & leiBie1 & "'>" & i & "</a>")
Else
Response.Write("<a class='juanZeng_xianShi_yeMa2' href='./xianShi.aspx?pageIndex=" & i & "&leiBie=" & leiBie1 & "'>" & i & "</a>")
End If
i = i + 1
Loop
Else
' 1234 5 6 78910 11 12 13
If pageIndex <= 5 Then
i = 1
Do While i <= totalPage
If pageIndex = i Then
Response.Write("<a href='./xianShi.aspx?pageIndex=" & pageIndex & "&leiBie=" & leiBie1 & "'><font size='5px' color='red' > " & i & " </font></a>")
Else
Response.Write("<a href='./xianShi.aspx?pageIndex=" & i & "&leiBie=" & leiBie1 & "'><font size='5px' color='blue' > " & i & " </font></a>")
End If
i = i + 1
Loop
ElseIf pageIndex >= totalPage - 4 Then
i = totalPage - 9
Do While i <= totalPage
If pageIndex = i Then
Response.Write("<a href='./xianShi.aspx?pageIndex=" & pageIndex & "&leiBie=" & leiBie1 & "'><font size='5px' color='red' > " & i & " </font></a>")
Else
Response.Write("<a href='./xianShi.aspx?pageIndex=" & i & "&leiBie=" & leiBie1 & "'><font size='5px' color='blue' > " & i & " </font></a>")
End If
i = i + 1
Loop
Else
i = pageIndex - 4
Do While i <= pageIndex + 5
If pageIndex = i Then
Response.Write("<a href='./xianShi.aspx?pageIndex=" & pageIndex & "&leiBie=" & leiBie1 & "'><font size='5px' color='red' > " & i & " </font></a>")
Else
Response.Write("<a href='./xianShi.aspx?pageIndex=" & i & "&leiBie=" & leiBie1 & "'><font size='5px' color='blue' > " & i & " </font></a>")
End If
i = i + 1
Loop
End If
End If
End Sub
(3)取出数据的sql语句是
mysql = "select * from (select top " & pageSize & " * from (select top " & pageSize * pageIndex & " * from juanZengBiao where 类别= '" & Request("leiBie") & "'order by 发布时间 desc)order by 发布时间 asc)order by 发布时间 desc"
(4)在pageLoad中写上
'---------------做分页显示--------------
'做分页,每次访问这个页面时都会把pageIndex传进来,
'Response.Write(40 Mod 20) '做测试的
'21 20,40 1 2,
If dr("zongShu") Mod 20 >= 1 And dr("zongShu") > 20 Then
totalPage = dr("zongShu") \ 20 + 1
ElseIf dr("zongShu") Mod 20 = 0 Then
totalPage = dr("zongShu") \ 20
Else
totalPage = 1
End If
Label8.Text = totalPage ‘Label8为显示总页数的控件
If Request("pageIndex") = "" Then
pageIndex = 1
Else
pageIndex = Request("pageIndex")
End If
Label7.Text = pageIndex ‘Label7为显示当前页页码的控件
'--------------做分页显示---------------
(5)上一页按钮的click事件中的代码
'对pageIndex先做判断,使pageIndex的值不能小于1
If pageIndex > 1 Then
pageIndex = pageIndex - 1
Else
pageIndex = 1
End If
Dim leiBie1 As String = Request("leiBie")
Response.Write("<script>{window.location='./xianShi.aspx?pageIndex=" & pageIndex & "&leiBie=" & leiBie1 & "'}</script>")
(6)下一页按钮中的click事件的代码
'对pageIndex先做判断,使pageIndex的值不能大于总页数
If Request("pageIndex") >= totalPage Then
pageIndex = totalPage
Else
pageIndex = pageIndex + 1
End If
Dim leiBie1 As String = Request("leiBie")
Response.Write("<script>{window.location='./xianShi.aspx?pageIndex=" & pageIndex & "&leiBie=" & leiBie1 & "'}</script>")
'Response.Redirect("./xianShi.aspx?pageIndex=" & pageIndex & " & leiBie=" & leiBie & "")
(7)再加一个输入框,加一个跳到该页的按钮,此按钮事件的代码:
pageIndex = TextBox1.Text ‘textBox1为跳到该页的输入框
If TextBox1.Text <> "" And pageIndex > totalPage Then
Label9.Visible = True
Exit Sub
End If
Dim leiBie1 As String = Request("leiBie")
Response.Write("<script>{window.location='./xianShi.aspx?pageIndex=" & pageIndex & "&leiBie=" & leiBie1 & "'}</script>")
'最后设置为不可见
Label9.Visible = False