`
wtfypm
  • 浏览: 11110 次
  • 性别: 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
分享到:
评论

相关推荐

    ASP.NET分页导航代码

    在这个"ASP.NET分页导航代码"项目中,我们可以深入探讨如何在ASP.NET环境中实现高效且自定义的分页功能。 首先,让我们了解分页的基本原理。在ASP.NET中,分页通常涉及到数据访问层(DAL)、业务逻辑层(BLL)和...

    asp.net24种分页含源码

    源码包中的文件可能包含了以上提到的一些或全部分页方法的实现,这为学习和实践ASP.NET分页提供了丰富的素材。通过分析这些源代码,开发者可以深入理解各种分页技术的工作原理,以及如何在实际项目中应用它们。 在...

    ASP.NET分页代码

    在这个“ASP.NET分页代码”的主题中,我们将深入探讨如何在ASP.NET中实现分页功能。 1. 分页的基本原理 分页主要是通过限制在页面上显示的数据量来实现的。当用户请求一个页面时,服务器只返回当前页所需的数据,而...

    ASP.NET分页功能的实现

    本教程将详细介绍如何使用AspNetPager控件来实现ASP.NET分页功能。 AspNetPager控件是由WUCtrl公司开发的一款高效、易用的分页控件,它可以轻松地集成到ASP.NET应用中,提供丰富的自定义选项和强大的性能。下面我们...

    小巧的Asp.net分页控件源代码

    这个小巧的Asp.net分页控件源代码提供了一个实现简单分页功能的例子,非常适合个人项目使用或者作为初学者学习的参考。 分页控件的基本工作原理是通过将大数据集分割成多个小部分,每次只加载一部分数据到页面上,...

    asp.net分页源码

    ASP.NET 分页源码是处理大...以上就是ASP.NET分页源码的核心知识点,它涵盖了分页的计算逻辑、数据库操作、事件处理以及用户界面的交互。这样的分页实现可广泛应用于各种数据展示场景,提供高效、流畅的数据浏览体验。

    自己学习写的 asp.net 分页控件源码

    本资源“自己学习写的 ASP.NET 分页控件源码”提供了作者在学习过程中编写的简单分页控件,对于初学者或希望自定义分页功能的开发者来说,这是一个很好的参考实例。 ASP.NET是微软推出的一种用于构建Web应用程序的...

    asp.net 分页控件(包括demo)

    在"AspNetPager732Samples"这个压缩包子文件的文件名称中,我们可以推断出这可能是一个特定版本(7.3.2)的ASP.NET分页控件的样本代码或项目。这些样本通常会包含不同的使用场景,例如基本分页、自定义分页样式、...

    自己写的asp.net分页

    在提供的内容中,我们可以看到一个简单的ASP.NET分页实例。这个例子使用了HTML表格、控件以及ASP.NET的`LinkButton`控件来创建分页导航。主要涉及以下几个关键元素: 1. **LinkButton**:`btnFirst`, `btnNext`, `...

    asp.net AJAX分页 分页代码

    本教程将深入探讨ASP.NET AJAX分页的相关知识点,以及如何编写分页代码。 1. **什么是ASP.NET AJAX分页?** ASP.NET AJAX分页是一种通过使用ASP.NET AJAX库(以前称为Atlas)实现的客户端分页方法。它利用...

    Ajax分页 Asp.net 分页

    压缩包中的项目代码和Demo提供了实际操作的例子,你可以下载并运行,以加深对Ajax分页在Asp.net中实现的理解。通过查看源代码,你可以学习到如何处理Ajax请求,如何构建分页逻辑,以及如何在前端展示分页结果。 ...

    asp.net分页控件源码 含数据库完整演示代码

    在本资源中,"asp.net分页控件源码 含数据库完整演示代码"提供了一个完整的解决方案,包括分页控件的源代码和与数据库交互的示例,这对于学习和开发ASP.NET应用程序的人来说非常有价值。 首先,我们需要理解分页的...

    asp.net 分页类

    一个自定义的ASP.NET分页类通常包括以下核心组件和功能: 1. **数据获取**:分页类首先需要能从数据源(如SQL Server数据库、XML文件、Web服务等)中获取数据。这通常通过ADO.NET或者Entity Framework等数据访问...

    .net分页 asp.net分页

    本文将深入探讨.NET分页和ASP.NET分页的相关知识点,以及如何在实际项目中应用。 首先,我们来理解什么是分页。分页是将大量数据分成多个小部分,每次只显示一部分,用户可以通过导航按钮(如“上一页”、“下一页...

    asp.net分页代码

    ASP.NET分页是Web开发中常见的一种技术,用于在大量数据中实现高效的浏览体验。它通过将数据分块加载到页面上,而不是一次性加载所有数据,从而提高网页性能和用户体验。下面将详细介绍ASP.NET分页的基本概念、实现...

    一个不错的Asp.net分页控件

    Asp.Net分页控件是Web开发中常用的一种组件,特别是在数据量庞大的应用程序中,它能够帮助用户有效地浏览和管理大量的信息。这个“一个不错的Asp.net分页控件”很可能是开发者为了优化用户体验和提高网页性能而设计...

    asp.net分页控件样式

    ASP.NET 分页控件是网页开发中用于处理大量数据分段显示的重要工具,它使得用户可以轻松地在多个页面间导航。Webdiyer 提供的 AspNetPager 是一个功能丰富的 ASP.NET 分页控件,提供了多种自定义样式和功能选项,以...

    asp.net 分页代码

    在ASP.NET中,分页是Web应用程序中非常常见的一种功能,尤其在处理大量数据时,为了提高用户体验和页面加载速度,通常会...在"WebApplication3"这个项目中,你可以通过学习和调试代码,进一步加深对ASP.NET分页的理解。

    ASP.NET分页控件(最新版)

    这个DLL文件包含了控件的所有实现代码,开发者可以通过引用它在项目中使用ASP.NET分页控件。而AspNetPager.xml文件很可能是该控件的XML文档,其中包含了关于控件的API参考、使用示例和配置选项,对于理解如何使用和...

Global site tag (gtag.js) - Google Analytics