博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Web之真假分页
阅读量:4572 次
发布时间:2019-06-08

本文共 2696 字,大约阅读时间需要 8 分钟。

      web设计中一个无法避免的问题就是分页显示。当数据量特别大的时候,我们不可能将全部的数据都在一个页面进行显示,假设这样将严重影响到它的美观性。所以在这个时候,分页显示则成为了我们的大功臣。当然分页也分两种,一种是真分页,一种是假分页,即:

     假分页:从数据库中选择全部记录后在分页。

    真分页:从数据库中选择当前页的记录

 

    首先先来说一下自带的分页功能(假分页):

    在.net中的GridView控件就自带分页显示功能,当然操作非常easy,总共分成两步:

        1、在界面加入�一个GridView控件,设置其属性AllowPaging的值为TruePageSize的值为n n 为每一页显示记录的条数),这样就设置成功了。

        2、将数据绑定到GridView控件上面就能够了。详细例如以下:

protected void Page_Load(object sender, EventArgs e)        {            if (!Page.IsPostBack)            {               //页面第一次载入时调用绑定数据方法                BindNews();            }        }         ///         ///绑定数据方法        ///         private void BindNews()        {            //查询数据,并将数据绑定到GridView1上面            GridView1.DataSource = newNewsManager().SelectAll();            GridView1.DataBind();        }         ///         /// 换页时的数据绑定功能        ///         /// 
///
protected voidGridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) { //获取当前页的索引 GridView1.PageIndex = e.NewPageIndex; //又一次进行数据绑定 BindNews(); }

    通过上面的步骤就能够轻松得到分页的数据了。尽管能够实现想要的结果,可是还存在着一些问题,比方上面的绑定数据方法中绑定的是所有的新闻,每次运行的时候都会查询数据库中所有的记录,当记录达到一定量大的时候比方50万条,100万条等等,这个时候绑定的时候会是多么长的时间。所以将上面的情况定义成为假分页。与其相比,真分页则非常好的攻克了这个问题,以下再来见证一下真分页的奇妙吧:

 

    在分页之前要进行数据查询,所以在这我建立了一个存储过程,用于查询分页数据,详细例如以下:

	ALTER PROCEDURE[dbo].[aspPageChoose] 	@startPageint,	@endPageint	AS	BEGIN	----建立暂时表,用于储存	withtemptbl as (	selectROW_NUMBER() OVER (ORDER BY id desc)as rowNum ,* from news	)	select* from temptbl  where rowNum between@startPage and @endPage	END

    其次是U层的建立,在界面上面放置两个控件,各自是AspNetPageGridView,将这两个控件每页显示的个数设置成相应的数值,最后就是对数据的绑定,进行显示,例如以下

protected voidPage_Load(object sender, EventArgs e)        {            if (!Page.IsPostBack)            {               //页面第一次载入时调用绑定数据方法               anp.RecordCount = 新闻的总数量;               int startpage = 1;               int endpage =3;               DataTable dt = newNewsManager().SelectAspNetPage(startpage, endpage);               GridView1.PageSize =endpage - startpage + 1;               GridView1.DataSource = dt;               GridView1.DataBind();            }        }         //进行换页显示数据        protected voidanp_PageChanged(object sender, EventArgs e)        {            int startpage =anp.StartRecordIndex;            int endpage = anp.EndRecordIndex;            DataTable dt = newNewsManager().SelectAspNetPage(startpage, endpage);            GridView1.PageSize = endpage -startpage + 1;            GridView1.DataSource = dt;            GridView1.DataBind();        }

    总结:常说对照出真知,通过上面的对照,能够非常清楚的展示,真分页为我们打开了方便之门,除此之外还给我们编程带来了巨大的优点。上面的纯属自己摸索而来,如有什么不足,还请各位指点指点。

转载于:https://www.cnblogs.com/yxwkf/p/3830013.html

你可能感兴趣的文章
2017-02-20 可编辑div中如何在光标位置添加内容
查看>>
$.ajax()方法详解
查看>>
jquery操作select(增加,删除,清空)
查看>>
Sublimetext3安装Emmet插件步骤
查看>>
MySQL配置参数
查看>>
全面理解Java内存模型
查看>>
存储过程
查看>>
生成器
查看>>
将一个数的每一位都取出来的方法!
查看>>
2) 十分钟学会android--建立第一个APP,执行Android程序
查看>>
面试题8:二叉树下的一个节点
查看>>
hash冲突的解决方法
查看>>
Asp.Net webconfig中使用configSections的用法
查看>>
mysql 二进制日志
查看>>
阻止putty变成inactive
查看>>
TP框架代码学习 学习记录 3.2.3
查看>>
doc文档生成带目录的pdf文件方法
查看>>
js数组,在遍历中删除元素(用 for (var i in arr)是无效的 )
查看>>
通过前端上传图片等文件的方法
查看>>
在 OC 中调用 Swift 代码
查看>>