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

用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' >&nbsp;" & i & "&nbsp;</font></a>")
                    Else
                        Response.Write("<a href='./xianShi.aspx?pageIndex=" & i & "&leiBie=" & leiBie1 & "'><font size='5px' color='blue' >&nbsp;" & i & "&nbsp;</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' >&nbsp;" & i & "&nbsp;</font></a>")
                    Else
                        Response.Write("<a href='./xianShi.aspx?pageIndex=" & i & "&leiBie=" & leiBie1 & "'><font size='5px' color='blue' >&nbsp;" & i & "&nbsp;</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' >&nbsp;" & i & "&nbsp;</font></a>")
                    Else
                        Response.Write("<a href='./xianShi.aspx?pageIndex=" & i & "&leiBie=" & leiBie1 & "'><font size='5px' color='blue' >&nbsp;" & i & "&nbsp;</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 
 

你可能感兴趣的:(技术,的)