`
wtfypm
  • 浏览: 10774 次
  • 性别: Icon_minigender_1
  • 来自: 陕西
社区版块
存档分类
最新评论

ASP.net分页实现代码(自己写)

    博客分类:
  • .Net
阅读更多
首先在定义4个LinkButton

分别为btnFirst, btnNext , btnPre , btnLast,对了一个datagrid 名字是MyDataGrid,还有三个lable表示状态的,名字是:lblPageCount(页数),lblRegisterCount(记录条数),lblCurrentIndex(当前第几页)

Page.aspx 页面代码如下(主要部分的):

       <body MS_POSITIONING="GridLayout">

              <form id="Form1" method="post" runat="server">

                     <FONT face="宋体">

                            <TABLE width="666" border="1" align="center" cellPadding="1" cellSpacing="1" style="WIDTH: 666px; HEIGHT: 296px">

                                   <tr>

                                          <td align="center" colSpan="2"><STRONG><FONT size="4">个性化的分页实例</FONT></STRONG>

                                          </td>

                                   </tr>

                                   <TR>

                                          <TD align="right" colSpan="2">

                                                 <asp:LinkButton id="btnAdd" runat="server">增加</asp:LinkButton>|

                                                 <asp:LinkButton id="btnUpdate" runat="server">修改</asp:LinkButton>|

                                                 <asp:linkbutton id="lkbDel" runat="server">删除</asp:linkbutton></TD>

                                   </TR>

                                   <TR>

                                          <TD colSpan="2"><asp:datagrid id="MyDataGrid" runat="server" DataKeyField="id" Width="100%" AllowSorting="True"

                                                        AutoGenerateColumns="true" PageSize="10" BorderColor="#CC9966" BorderStyle="None" BorderWidth="1px" BackColor="White"

                                                        CellPadding="4">

                                                        <FooterStyle ForeColor="#330099" BackColor="#FFFFCC"></FooterStyle>

                                                        <SelectedItemStyle Font-Bold="True" ForeColor="#663399" BackColor="#FFCC66"></SelectedItemStyle>

                                                        <ItemStyle ForeColor="#330099" BackColor="White"></ItemStyle>

                                                        <HeaderStyle Font-Bold="True" ForeColor="#FFFFCC" BackColor="#990000"></HeaderStyle>

                                                        <Columns>

                                                               <asp:TemplateColumn>

                                                                      <HeaderStyle Width="10px"></HeaderStyle>

                                                                      <HeaderTemplate>

                                                                             <INPUT id="chkselectall" type="checkbox" onClick="checkallorno(this)"></asp:CheckBox>

                                                                      </HeaderTemplate>

                                                                      <ItemTemplate>

                                                                             <asp:CheckBox id="chkselect" runat="server"></asp:CheckBox>

                                                                      </ItemTemplate>

                                                               </asp:TemplateColumn>

                                                        </Columns>

                                                        <PagerStyle HorizontalAlign="Center" ForeColor="#330099" BackColor="#FFFFCC"></PagerStyle>

                                                 </asp:datagrid></TD>

                                   </TR>

                                   <tr>

                                          <TD align="right" colSpan="2">

                                                 <div align="center">

                                                        <TABLE id="Table1" cellSpacing="1" cellPadding="1" border="0">

                                                               <TR>

                                                                      <TD noWrap><asp:label id="lblCurrentIndex" runat="server">CI</asp:label></TD>

                                                                      <TD>|</TD>

                                                                      <TD noWrap><asp:label id="lblRegisterCount" runat="server">RC</asp:label></TD>

                                                                      <TD>|</TD>

                                                                      <TD noWrap><asp:label id="lblPageCount" runat="server">PC</asp:label></TD>

                                                                      <TD>|</TD>

                                                                      <TD noWrap><asp:linkbutton id="btnFirst" onclick="PagerButtonClick" runat="server" CommandArgument="first">首页</asp:linkbutton></TD>

                                                                      <TD>|</TD>

                                                                      <TD noWrap><asp:linkbutton id="btnPrev" onclick="PagerButtonClick" runat="server" CommandArgument="prev">上一页</asp:linkbutton></TD>

                                                                      <TD>|</TD>

                                                                      <TD noWrap><asp:linkbutton id="btnNext" onclick="PagerButtonClick" runat="server" CommandArgument="next">下一页</asp:linkbutton></TD>

                                                                      <TD>|</TD>

                                                                      <TD noWrap><asp:linkbutton id="btnLast" onclick="PagerButtonClick" runat="server" CommandArgument="last">尾页</asp:linkbutton></TD>

                                                               </TR>

                                                        </TABLE>

                                                 </div>

                                          </TD>

                                   </tr>

                            </TABLE>

                     </FONT>

              </form>

       </body>





后台 代码:

  '定义全局静态变量,记录选中页面之前的总记录数(当然你要导数据连接命名空间,不会,^_^!)

    Dim conn As New SqlConnection("server=.;user=sa;password=sa;database=dbaccess")

    Dim adp As SqlDataAdapter

    Dim cmd As SqlCommand

    Dim ds As New System.Data.DataSet



    Dim RecordCount, PageCount, CurrentPage, i As Integer

    Dim codemessage As String

    Dim pagesize As Integer



Page_load 代码:



Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        '在此处放置初始化页的用户代码



        Me.pagesize = 3

        conn.Open()



        If Not Me.IsPostBack Then



            '分页设置

            Me.ViewState("state") = "all"

            CurrentPage = 0

            viewstate("pageindex") = 0



            Dim intcount As Integer

            cmd = New SqlCommand("select count(*) as rs from users", conn)

            Dim dr As SqlDataReader = cmd.ExecuteReader()

            If (dr.Read()) Then

                intcount = dr("rs")

            Else

                intcount = 0

            End If



            dr.Close()



            '计算共有多少条记录()

            Me.RecordCount = intcount



            '计算共有多少页()

            If (Me.RecordCount Mod pagesize = 0) Then

                PageCount = Me.RecordCount \ pagesize

            Else

                PageCount = RecordCount \ pagesize + 1

            End If



            viewstate("pagecount") = PageCount



            Me.ViewState("pagecount") = PageCount



            DbListBind()

            ShowStats()



            '让首页btnFirst变的不可以用哦

            Me.btnFirst.Enabled = False



        End If









    End Sub

Public Sub DbListBind()

        '显示数据清单+++++++++++++++++++++++++++++++++++

        Dim startindex As Integer

        '导入数据起始地址()

        startindex = CurrentPage * pagesize

        Dim strSel As String = "select * from users order by id asc"

        '程序修改对象()

        Dim MyAdapter As New SqlDataAdapter(strSel, conn)

        MyAdapter.Fill(ds, startindex, pagesize, "guest")



        Me.MyDataGrid.DataSource = ds

        Me.MyDataGrid.DataBind()



        Me.btnNext.Enabled = True

        Me.btnPrev.Enabled = True



        If CurrentPage >= PageCount - 1 Then

            btnNext.Enabled = False



        End If

        If CurrentPage = 0 Then

            btnPrev.Enabled = False



        End If



        lblCurrentIndex.Text = "第 " + (Me.CurrentPage + 1).ToString() + " 页"

    End Sub



Public Sub PagerButtonClick(ByVal sender As Object, ByVal e As System.EventArgs)

     

        '获得LinkButton的参数值

        Dim args As String = sender.CommandArgument



        CurrentPage = viewstate("pageindex")

        PageCount = viewstate("pagecount")



        Select Case args

            Case "next"

                If CurrentPage < PageCount - 1 Then

                    CurrentPage = CurrentPage + 1

                End If

                Me.btnLast.Enabled = True

                Me.btnFirst.Enabled = True



                If (Me.CurrentPage = Me.PageCount - 1) Then

                    Me.btnLast.Enabled = False

                End If



            Case "prev"

                If CurrentPage > 0 Then

                    CurrentPage = CurrentPage - 1

                End If

                Me.btnFirst.Enabled = True

                Me.btnLast.Enabled = True



                If (Me.CurrentPage = 0) Then

                    Me.btnFirst.Enabled = False

                End If



            Case "last"

                CurrentPage = Me.PageCount - 1

                Me.btnLast.Enabled = False

                Me.btnFirst.Enabled = True

            Case "first"

                CurrentPage = 0

                Me.btnFirst.Enabled = False

                Me.btnLast.Enabled = True

        End Select



        viewstate("pageindex") = CurrentPage



        If viewstate("state") = "all" Then

            DbListBind()



        End If





    End Sub



Public Sub DbListBind()

        '显示数据清单+++++++++++++++++++++++++++++++++++

        Dim startindex As Integer

        '导入数据起始地址()

        startindex = CurrentPage * pagesize

        Dim strSel As String = "select * from users order by id asc"

        '程序修改对象()

        Dim MyAdapter As New SqlDataAdapter(strSel, conn)

        MyAdapter.Fill(ds, startindex, pagesize, "guest")



        Me.MyDataGrid.DataSource = ds

        Me.MyDataGrid.DataBind()



        Me.btnNext.Enabled = True

        Me.btnPrev.Enabled = True



        If CurrentPage >= PageCount - 1 Then

            btnNext.Enabled = False



        End If

        If CurrentPage = 0 Then

            btnPrev.Enabled = False



        End If



        lblCurrentIndex.Text = "第 " + (Me.CurrentPage + 1).ToString() + " 页"

    End Sub





Public Sub PagerButtonClick(ByVal sender As Object, ByVal e As System.EventArgs)

        '获得LinkButton的参数值

        Dim args As String = sender.CommandArgument



        CurrentPage = viewstate("pageindex")

        PageCount = viewstate("pagecount")



        Select Case args

            Case "next"

                If CurrentPage < PageCount - 1 Then

                    CurrentPage = CurrentPage + 1

                End If



            Case "prev"

                If CurrentPage > 0 Then

                    CurrentPage = CurrentPage - 1

                End If

            Case "last"

                CurrentPage = Me.PageCount - 1

            Case "first"

                CurrentPage = 0

        End Select



        viewstate("pageindex") = CurrentPage



        If viewstate("state") = "all" Then

            DbListBind()



        End If





    End Sub







Public Sub ShowStats()



        lblPageCount.Text = "总共 " + Me.PageCount.ToString() + " 页"

        lblRegisterCount.Text = "共 " + Me.RecordCount.ToString() + " 条"



    End Sub
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics