牛腩新闻发布系统—真假分页

本文对比分析了真假分页技术在数据展示上的区别。假分页一次性加载所有数据,通过前端分页显示;真分页则按需从数据库加载数据,适用于大数据量场景。介绍了ASP.NET中实现两种分页的具体步骤,包括使用GridView和AspNetPager控件的方法。
摘要由CSDN通过智能技术生成
前言

  牛腩老师在视频的末尾讲到了真假分页技术,所谓分页就是当数据量比较大的时候,并不是给用户展示出全部的数据,而是只展示一部分。但是分页也分为真分页和假分页,下面就总结一下什么是真分页,什么是假分页。

真假分页简介

  假分页:一次性从数据库中查出所有的记录,但是用户在前端可以按页查看。
  真分页:每次只从数据库中取出相应的记录,随需随取。

假分页

  假分页我们可以利用 ASP.NET 自带的 GridView 控件,优点是简单。
  首先将 GridView 控件的 AllowPaging 属性改为 True,开启分页功能。其次可以设置 PageSize 这个属性,即一页显示多少条记录。最后编写代码就可以了。

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridView1.PageIndex = e.NewPageIndex;
    BindNews();
}
private void BindNews()
{
    DataTable dt = new NewsManager().SelectAll();
    repNews.DataSource = dt;
    repNews.DataBind();
}
真分页

  真分页适合用于数据量比较大的时候,用分页控件实现真分页的优点是灵活。它使得显示数据和分页实现分离,数据可以来自任何数据源,而且还可以自定义显示样式。
  牛腩老师在视频中向我们介绍了一个分页控件:AspNetPager,下载地址:分页控件。除了下载之外,还可以利用 VS 的 Nuget包管理器,直接在程序包管理器控制台中输入以下命令:Install-Package AspNetPager_CN -Version 7.5.1
在这里插入图片描述
敲下回车之后,dll文件就会自动加到 bin 目录下,然后再将这个控件添加到工具箱中,就可以直接使用了。
接下来编写代码就可以了:首先在aspx文件中设计好分页控件的样式

<webdiyer:AspNetPager 
	ID="AspNetPager1" CssClass="aspnetpager" LayoutType="Table" NumericButtonCount="6" UrlPaging="true"
    PageSize="5" runat="server" HorizontalAlign="Center" OnPageChanged="AspNetPager1_PageChanged" 
    
    PagingButtonType="Image" Width="100%" ImagePath="/images/" ButtonImageNameExtension="n" 
    ButtonImageExtension=".gif" DisabledButtonImageNameExtension="g" CpiButtonImageNameExtension="r"
	PagingButtonSpacing="10px" ButtonImageAlign="left"
	
    CustomInfoHTML="第 <font color='red'><b>%CurrentPageIndex%</b></font> 页 , 共 %PageCount% 页"
    ShowCustomInfoSection="Left" AlwaysShow="true" ShowPageIndexBox="Always" TextBeforePageIndexBox="转到第" 
    TextAfterPageIndexBox="页" SubmitButtonText="Go">
</webdiyer:AspNetPager>

其次就是在后台代码中绑定数据了

protected void Page_Load(object sender, EventArgs e)
{
    if (Session["admin"] != null && Session["admin"].ToString() == "niunan")
    {
        if (!Page.IsPostBack)
        {
            //获取记录的总数,这个一定要写,否则界面上不会显示数据
            AspNetPager1.RecordCount = new NewsManager().SelectAll().Rows.Count;
            BindNews();
        }
    }
    else
    {
        Response.Redirect("login.aspx");
    }        
}
//绑定新闻
private void BindNews()
{
    int startIndex = AspNetPager1.StartRecordIndex;
    int endIndex = AspNetPager1.EndRecordIndex;
    DataTable dt = new NewsManager().SelectPageNews(startIndex, endIndex);
    repNews.DataSource = dt;
    repNews.DataBind();
}

protected void AspNetPager1_PageChanged(object sender, EventArgs e)
{
    BindNews();
}

下面是效果图:
在这里插入图片描述

后语

  如果想更多的了解分页控件如何使用的话,http://www.webdiyer.com/aspnetpager/ 这个网站介绍的很详细,有帮助文档还有在线示例,对此控件的各个属性介绍的很详细。上面显示的样式就是使用的图片按钮,如果对上面的代码中有不理解的地方,请参照此网站。

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值