您的位置:首页 > 其它

我的第一篇技术博文_做分页显示

2012-12-16 13:25 351 查看
用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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  技术