文章类型: .NET
关键词: C#,ASPX,ASP,.NET中,分页,自定义
内容摘要:

ASP.NET中的分页剖析(三)

2015/7/29 12:22:15    来源:apple    阅读:

这里再给大家分析下如何实现基于SQL语句的分页功能。我们要手动实现自己的分页效果。如下图:

1.png

同时分页时能进行排序,如下图:

2.png

要实现这些功能需要如下编码实现,具体代码如下:

.aspx页面排序时的代码:

<div style="text-align:left;margin:20px 0 20px 0;">排序方式:

    <asp:Button ID="btnDate" runat="server" Text="出版日期" OnClick="btnDate_Click"

        BackColor="#C0FFC0" BorderColor="SeaGreen" BorderStyle="Solid"

        BorderWidth="1px" CssClass="anniu" Font-Size="12px" ForeColor="Black"

        Font-Bold="False" Height="16px" Width="66px" />      

    <asp:Button ID="btnPrice" runat="server" Text="价格" OnClick="btnPrice_Click"

        BackColor="#C0FFC0" BorderColor="SeaGreen" BorderStyle="Solid"

        BorderWidth="1px" CssClass="anniu" Font-Size="12px" ForeColor="Black"

        Font-Bold="False" Height="16px" Width="66px" />&nbsp;

    <asp:Button ID="btnChangeOrder" runat="server" Text="切换排序"

        BackColor="#FFD7FF" BorderColor="SeaGreen" BorderStyle="Solid"

        BorderWidth="1px" CssClass="anniu" Font-Size="12px" ForeColor="Black"

        Font-Bold="False" Height="16px" Width="60px"

        onclick="btnChangeOrder_Click" />

</div>

.aspx页面分页时的代码:

<div class="contentstyle" style="text-align:center;margin:20px 0 20px 0;">

    <asp:Label ID="lblMessage" runat="server" Text="msg" Height="25px" Font-Size="15" ></asp:Label>&nbsp;

    <asp:Button ID="btnFirstPage" runat="server" Text="首页" Width="48px"

        Height="25px" onclick="btnFirstPage_Click" />&nbsp;

    <asp:Button ID="btnPreviousPage" runat="server" Text="上一页" Width="48px"

        Height="25px" onclick="btnPreviousPage_Click" />&nbsp;

    <asp:Button ID="btnNextPage" runat="server" Text="下一页" Width="48px"

        Height="25px" onclick="btnNextPage_Click" />&nbsp;

    <asp:Button ID="btnLastPage" runat="server" Text="末页" Width="48px"

        Height="25px" onclick="btnLastPage_Click" />&nbsp;

    <span style="font-size:12pxfont-style:italicfont-weight:bold;">页大小:</span>

    <asp:TextBox ID="txtPageSize" runat="server" Width="25px" Height="25px"></asp:TextBox>

    <span style="font-size:12pxfont-style:italicfont-weight:bold;">

    <asp:RequiredFieldValidator ID="rfvTxtPageSize" runat="server"

        ControlToValidate="txtPageSize" ErrorMessage="页面记录大小不能为空!">*</asp:RequiredFieldValidator>

    <asp:RangeValidator ID="rvTxtPageSize" runat="server"

        ControlToValidate="txtPageSize" ErrorMessage="页面记录大小必须大于零且不大于当前记录数!"

        MinimumValue="1" Type="Integer">*</asp:RangeValidator>

    跳到:</span>

    <asp:TextBox ID="txtCurrentPageIndex" runat="server" Width="25px" Height="25px"></asp:TextBox>

    <span style="font-size:12pxfont-style:italicfont-weight:bold;">

    <asp:RequiredFieldValidator ID="rfvTxtCPI" runat="server"

        ControlToValidate="txtCurrentPageIndex" ErrorMessage="跳转页不能为空!">*</asp:RequiredFieldValidator>

    <asp:RangeValidator ID="rvTxtCPI" runat="server" BorderStyle="None"

        ControlToValidate="txtCurrentPageIndex" ErrorMessage="输入页必须大于零且不大于当前页面数!"

        MinimumValue="1" Type="Integer">*</asp:RangeValidator>

    </span>

    <asp:Button ID="btnTurnPage" runat="server" Text="GO" Width="25px"

        Height="25px" onclick="btnTurnPage_Click" />

    <asp:ValidationSummary ID="ValidationSummary1" runat="server"

        ShowMessageBox="True" ShowSummary="False" />

</div>

.aspx.cs对应的业务逻辑代码如下:

using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using MyBookShop.BLL;

using MyBookShop.Models;

using System.Collections.Generic;

using System.Drawing;

 

//BookList_ManualPager

public partial class BookList_ManualPager : System.Web.UI.Page

{   

    protected void Page_Load(object sender, EventArgs e)

    {

        if (!IsPostBack)

        {

            //首次加载,赋初值

            try

            {

                ViewState["typeid"] = Convert.ToInt32(Request.QueryString["typeid"]);

            }

            catch

            {

                ViewState["typeid"] = -1;

            }

 

            RecordCount = BookManager.GetBooksCountByCategoryId(Convert.ToInt32(ViewState["typeid"]));

            btnChangeOrder.Enabled = false;

            Pager = 1;

            PageSize = 10;

            SetCurrentStatus();

 

&n

↑ 上一篇文章:ASP.NET中的分页剖析(二) 关键词:C#,ASPX,ASP,.NET中,分页,自定义 发布日期:2015/7/29 12:20:14
↓ 下一篇文章:ASP.NET中的分页剖析(四) 关键词:C#,ASPX,ASP,.NET中,分页,自定义 发布日期:2015/7/29 12:23:43
相关文章:
ASP.NET中的分页剖析(四) 关键词:C#,ASPX,ASP,.NET中,分页,自定义 发布日期:2015-07-29 12:23
ASP.NET中的分页剖析(二) 关键词:C#,ASPX,ASP,.NET中,分页,自定义 发布日期:2015-07-29 12:20
ASP.NET中的分页剖析(五) 关键词:C#,ASPX,ASP,.NET中,分页,自定义 发布日期:2015-07-29 12:24
相关目录:.NET软件开发ANDROID
我要评论
正在加载评论信息......