ASP.NET——真假分页
所谓分页,就是把所有要显示的内容分成n多页来显示。那为什么要用分页而不直接全部显示呢?这就好比一本书,我们可以用一张纸写完全部书的内容,但实际上并不是这么做的。我们把网页分成一页一页的,其实很大程度上是在为用户考虑,极大的方便用户。
分页有两种,一种是真分页,一种是假分页。
假分页的“假”在于我已经把所有的数据取出来了,只是在显示的时候给予一定的控制来到达分页的效果。
真分页的“真”在于所有的数据并非一次取出,而是真真正正的用户查看哪一页才去数据库中取出所需的内容。
假分页:
在ASP.NET中,我们经常用GridView,Repeater来绑定数据源,显示从数据库中查到的数据。我们就先以GridView为例,来看看假分页是如何实现的。
首先,在页面添加GridView。并设置允许分页和分页显示的条数,即AllowPaging=True,PageSize=6.(即每页显示6条记录,如图:)
当运行界面时,可以显示分页状态。但当单击第2页的按钮时,会触发PageIndexChanging事件,它是在单击某一页导航按钮时,但在 GridView 控件处理分页操作之前发生。
public partial class Test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//当第一次进入页面时,显示绑定的数据
if (!Page.IsPostBack)
{
GridView1.DataSource = new NewsManager().SelectAll(); //这里用到了分层,可以直接理解为绑定数据库中的表。
GridView1.DataBind();
}
} //触发分页事件
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataSource = new NewsManager().SelectAll();
GridView1.DataBind();
}
}
这样,就可以实现假分页了。
真分页:
这里要用到一个分页的控件AspNetPager。
首先,添加该控件。
在工具箱处右击——选项卡
单击浏览后,找到AspNetPager.dll.
这样,工具箱就出现该控件了。
把它拖到设计界面,如下图:
分页控件添加完成后,类似地,设定每页的显示条数和最大记录数。这时,当改变页数时执行PageChanged事件。StartRecordIndex, EndRecordIndex分别是开始行数和结束行数。利用这两个参数很容易可以实现从数据库一页一页地取出数据,在这里就不赘述了。
比较这两种分页方式:
真分页与后台的交互次数多,但面对庞大数据时仍能保持高效率,用户体验度较好。假分页则相反。
附:
SQL中的分页语句
select top 每页显示的记录数(PageSize) * from topic where id not in
(select top (当前的页数-1)×每页显示的记录数 id from topic order by id desc)
order by id desc
AspNetPager分页控件
http://www.jb51.net/codes/40809.html
ASP.NET——真假分页的更多相关文章
- ASP.NET真假分页—真分页
当数据量过大,有几万甚至十几万条数据时,每次都从数据库中取出所有数据就会降低查询效率,系统运行慢,还有可能卡死,这时假分页就会显得很不人性化,因此有了真分页的必要性. 正如上篇博文总结归纳,“真”相对 ...
- Asp.Net北大青鸟总结(四)-使用GridView实现真假分页
这段时间看完了asp.net视频.可是感觉到自己的学习好像没有巩固好,于是又在图书馆里借了几本关于asp.net的书感觉真的非常好自己大概对于asp.net可以实现主要的小Demo.可是我知道仅仅有真 ...
- AspNetPager真假分页对照实例
从開始学习BS已经有一段时间了. 对于BS的设计,都是进行的网页设计,当中包含从数据库中取出来的数据.显示在页面上.曾经在CS中,都是使用GridView等表格控件进行显示,因为数据小.并且右側又有滚 ...
- ASP.NET真分页_接前篇引用AspNetPager.dll进行数据分页
一.前端准备工作 1.之前我写到过<Asp.net中引用AspNetPager.dll进行数据分页> 这种分页方式只能在前台将数据分页,而每次点击查询时对目标数据库还是全查询,这样不仅会 ...
- ASP.NET MVC分页组件MvcPager 2.0版发布暨网站全新改版
MvcPager分页控件是在ASP.NET MVC Web应用程序中实现分页功能的一系列扩展方法,该分页控件的最初的实现方法借鉴了网上流行的部分源代码, 尤其是ScottGu的PagedList< ...
- ASP.NET MVC分页实现之改进版-增加同一个视图可设置多个分页
我之前就已经实现了ASP.NET MVC分页(查看该博文),但它有局限性,必须确保在同一个视图中只能有一处分页,若需要在同一个视图中设置多个分页,却无能为力,为此,我重新对原先的代码进行了优化,增加了 ...
- 基于Bootstrap的Asp.net Mvc 分页
基于Bootstrap的Asp.net Mvc 分页的实现 最近写了一个mvc 的 分页,样式是基于 bootstrap 的 ,提供查询条件,不过可以自己写样式根据个人的喜好,以此分享一下.首先新建一 ...
- [Asp.net]AspNetPager分页组件
引言 在基于Asp.net的内网系统中,分页功能是最常用的,用的最多的组件就是AspNetPager. AspNetPager 官网:http://www.webdiyer.com/aspnetpag ...
- Asp.Net真分页技术
最近学校要做课题,闲来没事研究了下Asp.net的分页,我使用Repeater进行数据的绑定,每次从数据库读取到8条数据填充到Repeater中,这样搞可以降低数据库的压力,提高效率. 效果图如下: ...
随机推荐
- gulp详细教程——前端自动化构建工具
项目构建 一个项目是由多个开发者共同开发一个项目,各负责不同的模块,这就会造成一个完整的项目许多‘代码片段’组成,合并css.javascript,压缩html.css.javascript.imag ...
- Mybatis学习的一些细节
一.mybatis 基本配置 最近几天一直在学习mybatis,看了一些源码,本文讲述mybatis的一些基本配置和基本的用法和注意到一些细节.个人时间和精力有限,本文属于流水账类型,不成体系,算是自 ...
- javascript入门笔记8-window对象
History 对象 history对象记录了用户曾经浏览过的页面(URL),并可以实现浏览器前进与后退相似导航的功能. 注意:从窗口被打开的那一刻开始记录,每个浏览器窗口.每个标签页乃至每个框架,都 ...
- Python 初始—(文件操作)
文件修改,我们可以不用讲一个文件全部都进行读取,然后放入内存,如果文件过大,容易造成内存的 内存溢出问题 因此我们可以便读取边进行修改操作 f=open("old.txt",&qu ...
- ABAP 调用远程rfc
ABAP 调用rfc DESTINATION附加项后面接的是远程目标名称,该目标在事务SM59中设定,其中包含连接和登录远程系统所需的全部参数信息.如果调用的就是本机的RFC目标,则DESTINATI ...
- 6-2 python 操作数据库mysql
1.python操作MySQL的 查询(select操作) 步骤 import pymysql # 1.建立数据库连接 conn = pymysql.connect(host='118.24.3.40 ...
- 使用Docker 一键部署 LNMP+Redis 环境
使用Docker 部署 LNMP+Redis 环境 Docker 简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linu ...
- Element-ui组件--pagination分页
一般写后台系统都会有很多的列表,有列表就相应的要用到分页,根据项目中写的几个分页写一下我对分页的理解,就当是学习笔记了. 这是Element-ui提供的完整的例子 <template> ...
- ethereum(以太坊)(五)--Bool
pragma solidity ^0.4.0; contract Bool{ uint num1 = 100; uint num2 = 200; bool _c = true; // &&am ...
- Pythond函数的参数使用操作注意事项
定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解 ...