承接上篇博文《ASP.NET真假分页-假分页》:http://blog.csdn.net/u010773667/article/details/38845009,继续解说ASP.NET真假分页之真分页。

真分页

当数据量过大,有几万甚至十几万条数据时。每次都从数据库中取出全部数据就会减少查询效率,系统执行慢。还有可能卡死,这时假分页就会显得非常不人性化。因此有了真分页的必要性。

正如上篇博文总结归纳,“真”相对于“假”存在,即不藕断丝连。从根部彻底断开,在此处表现为依据查询条件,仅仅从数据库中提取出须要的部分,适合于大数据。而真分页的实现要借助于第三方控件AspNetPager。

AspNetPager控件是一个基于.net的第三方免费开源控件,具有开发高效、使用方便、功能完整等长处。它弥补了GridView内置分页以及PageDatasource类辅助分页的不足,将分页数据逻辑和页面UI分离开来,很有利于SQL分页的实现。

首先须要下载AspNetPager控件,下载DLL文件:http://www.webdiyer.com/downloads

在VS中引用AspNetPager控件,欢迎參考博文《VS加入Ajax》中加入选择项部分(有图有真相)。此处不再赘述:http://blog.csdn.net/u010773667/article/details/38518461

首先在web窗口中拖放一个gridview控件用来显示数据。选中AspNetPager控件拖拽到web窗口对应位置用来进行分页设置。

选中spNetPager控件。在右下角将会显现一个小button,单击打开,对导航button显示文本进行设置。

执行后效果:

对页索引文本或下拉框进行设置

改进效果见下图:

假设还想显示的更加详细,可进行自己定义信息区显示方式及内容设置

上述对控件进行的全部设置将在VS中自己主动生成对应代码,我们也能够通过手动输入代码进行设置,此处不介绍。

好了。设置好了前台。接下来就要进行数据绑定了(注意:在方法anpCa_PageChanged()中绑定了caid=6,此处须要又一次获得类别ID,我没有解决。。

希望会的朋友友情提示一下)

protected void Page_Load(object sender, EventArgs e){          if (!Page .IsPostBack ){string caid = Request.QueryString["caid"];DataTable dt = new NewsManager().SelectAllNewsByCaId(caid);             anpCa.AlwaysShow = true;anpCa.PageSize = 5;anpCa.RecordCount = dt.Rows.Count;int startIndex = anpCa.PageSize * 0;int endIndex = anpCa.PageSize * 1;               gvDataBind(caid, startIndex, endIndex);               }} private void gvDataBind(string caid,int startIndex,int endIndex){           DataTable dt = new NewsManager().SelectPartNewsByCaId(caid, startIndex, endIndex);if (dt.Rows.Count != 0){lblCategory.Text = dt.Rows[0]["name"].ToString();  //使类别标题显示对应的类别名称}gvNew.DataSource = dt;gvNew.DataBind();}protected void anpCa_PageChanged(object sender, EventArgs e){string caid = "6";int startIndex = anpCa.PageSize * (anpCa.CurrentPageIndex - 1)+1;int endIndex = anpCa.PageSize * (anpCa.CurrentPageIndex);gvDataBind(caid, startIndex, endIndex);}
}

在D层数据查询的部分代码展示

</pre></p><p></p><pre class="html" name="code">
</pre><span style="font-family:华文楷体;font-size: 14pt;"></span><pre class="html" name="code">#region 依据类别ID取出该类别下的全部新闻的分页显示/// <summary>/// 依据类别ID取出该类别下的全部新闻/// </summary>/// <param name="caId">类别ID</param>/// <returns></returns>public DataTable SelectPartNewsByCaId(string caId,int startIndex, int endIndex){DataTable dt = new DataTable();SqlParameter[] paras = new SqlParameter[]
{new SqlParameter ("@caId",caId ),new SqlParameter ("@startIndex",startIndex ),new SqlParameter ("@endIndex",endIndex )};dt = sqlhelper.ExecuteQuery("dbo.category_showpage", paras, CommandType.StoredProcedure);return dt;}#endregion

存储过程(非常重要)

-- =============================================
-- Author:      王英群
-- Create date: 2014-8-10
-- Description: 跟据类别ID取出该类别下的全部新闻的分页显示
-- =============================================
ALTER PROCEDURE [dbo].[category_showpage] @caid int,@startIndex int,@endIndex int
AS
BEGINwith temptable as (select ROW_NUMBER() over (order by id desc) as 行号, * from(select n.id,n.titile,n.createTime,c.[name],n.caId from news n inner join category c on n.caId =c.id and n.caId =@caid) as aa) select * from temptable  where 行号 between @startIndex and @endIndexEND

执行后效果见下图:

注意:我的程序中多了一个參数(类别ID),在页索引动态变化的过程中须要一直又一次获得,这一点我没有实现,希望小伙伴们能够帮助我。谢谢!

结合上篇博文。假分页适合于数据量相对较小的情况下。而真分页适合于数据量大的情况下。真假分页的使使用,请阅读我们的负担。




转载于:https://www.cnblogs.com/bhlsheji/p/5028323.html

ASP.NET分页正品—分页真相关推荐

  1. Asp.net之真假分页大揭秘、使用AspNetPager实现真分页

    最近在web界面的时候,遇到了一些非常现实的问题.最让人头疼的问题就是显示数据中的书画作品.这些书画作品都会以图片的形式展示给用户.        起初做的时候并没有想太多,只按着最简单的方式将所有的 ...

  2. 一起谈.NET技术,ASP.NET MVC2实现分页和右键菜单

    右键菜单非常方便,很多时候会用到.这篇文章将使用一个JQUERY的插件在asp.net mvc中实现右键菜单.本文还将介绍一下在asp.net mvc中如何实现简单的分页.效果如下图: 首先,下载此插 ...

  3. Asp.net(c#)GridView分页时用图片显示上一页,下一页

    Asp.net(c#)GridView分页时用图片显示上一页,下一页 效果展示: 需要的两张图片:    详细代码: Code <%@ Page Language="C#"  ...

  4. 三层架构+ajax分页实例,ASP.NET存储过程实现分页效果(三层架构)

    本文实例为大家分享了ASP.NET存储过程实现分页的具体代码,供大家参考,具体内容如下 实现效果: 文本框内输入跳转的页数,点击GO会跳转到该页 首先在项目下加入BLL,DAL,DataAccess, ...

  5. Asp.net:DataList分页技术

    转:http://blog.sina.com.cn/s/blog_4a87caab010006kr.html Asp.net:DataList分页技术(1) ·                     ...

  6. DataList编辑、更新、取消、删除、分页(分页控件 AspNetPager.dll)

    DataList编辑.更新.取消.删除.分页,分页用的是AspNetPager.dll4.3控 件,功能挺强大的,自己可以到网上下个 1.aspx 程序代码 <%@ Page Language= ...

  7. JavaWeb黑马旅游网-学习笔记06【旅游线路分页展示分页展示】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  8. ldaptemplate 分页_分页机运行与维护

    分页机运行与维护 分页机 分页机运行与维护 1. 检查分页机是否有螺丝松动. 2. 开机前清除输送带上杂物,用手盘动输送带,确认无异常卡住 3. 调节扶料板高低(通过调整挡料板的高低来实现),使之尽量 ...

  9. 高仿淘宝分页:jQuery分页插件kkpager-Array-专题视频课程

    高仿淘宝分页:jQuery分页插件kkpager-503人已学习 课程介绍         天底下万能的分页 课程收益     让所有人不再为分页所苦恼 讲师介绍     Array 更多讲师课程   ...

最新文章

  1. Linux系统主要目录及作用
  2. 不一致的国际数据隐私法
  3. 延时消息_手把手实现一条延时消息
  4. mac node oracle,将Python3.5(Mac OS X El Capitan)连接到Oracle集群(远程)
  5. 深度学习李宏毅PPT学习笔记一(深度学习介绍)
  6. docker gpu 创建 训练环境_巧用 Docker 快速部署 GPU 环境
  7. configure: error: Cannot find OpenSSL's libraries
  8. python对日志处理的封装
  9. 《OpenCV3编程入门》学习笔记九:直方图与匹配
  10. Class 学习 (Es6阮一峰)
  11. 2022“美亚杯”第八届中国电子数据取证大赛-团队赛题目
  12. 计网 Packet Tracer仿真 | 简单易懂集线器和交换机对比(理论+仿真)
  13. python爬京东联盟_Python爬取京东商品数据
  14. c语言计时纳秒_C代码中以纳秒为单位计算函数时间
  15. 华为路由器和交换机在BootROM下清除Console口密码
  16. 狼来了,海康威视被黑客入侵,视频监控设备被境外IP地址控制
  17. evm?衡そΑ_RGB? CMYK? Α? 什么是图像通道,它们是什么意思?
  18. 【HarmonyOS】鸿蒙3.0使用WebView进行链接跳转,告警“hwbr_engine_AwContentsClient: Denied starting an intent without a
  19. 【WLAN】【测试】Linux下aircrack-ng的应用之空口抓包全解
  20. dedecms自定义表单 发送邮件

热门文章

  1. tek示波器软件_Tektronix(泰克示波器)
  2. 1279:【例9.23】橱窗布置(flower)
  3. EasyExcel导出自适应列宽
  4. 苹果Siri智能语音被逆袭,且看“新秀”华为平板M5青春版
  5. Windows下实现COM口通信c++源代码(验证可行)
  6. samba/本地文件共享
  7. 死磕闲置交易的猎趣、闲鱼、转转们,拯救“剁手党”还差哪味猛药?
  8. 大宇资讯java游戏_30年后重新出发:大宇单机游戏《轩辕剑柒》试玩
  9. zzulioj 1818: squee_spoon and his Cube VI (KMP求最长字符串) 好题
  10. python学习笔记——numpy的squeeze方法