大家还记得以前asp中recordset那方便易用的分页功能吗?pagesize,absolutepage,pagecount这些属性的存在大大的方便了页面的编排。而asp.net的DataSet却没有提供相应的方法来进行分页。不过,通过简单的程序,也可以让DataSet实现分页功能。
先来回忆一下recordset是怎么分页的,先是把数据放在recordset里面,然后设定pagesize,和pagecount的值,这样recordset就会自动把自己存放的数据按段进行划分,然后根据absolutepage的值来决定当前页是显示哪一段数据。
在asp.net中,通过DataSet来完成上面的程序也很简单,同样是先把数据库里的数据分段,然后分次存到DataSet中。其中关键是怎么实现分次存储,DataAdapter的Fill方法有一个重载的用法:Fill(DataSet,int,int,string),中间的两个int分别是数据表中记录开始的地方和要存储的记录数,通过这个方法就可以完成这个工作。
int pagesize=8;//每页要显示的记录数
int absolutepage=1;//要设定的当前页
//计算当前页
if(Request["page"]!=null){
absolutepage=Int32.Parse(Request["page"]);
}
int pagecount;//总页数
int rowstart;//数据库中分段记录开始的地方
//计算总记录数
ada.Fill(ds,"counts");
int rowcount=ds.Tables["counts"].Rows.Count;
//计算总页数
int n=rowcount/pagesize;
if(rowcount==pagesize*n)
pagecount=n;
else
pagecount=n+1;
//计算记录开始数,也就是分段的起始部分
rowstart=pagesize*(absolutepage-1);
//把当前的记录段内的记录填加到DataSet中,然后就把数据绑定到某个容器控件,比如Repeater和DataList
ada.Fill(ds,rowstart,pagesize,"dtmemberx");
//用来显示每一页的连接,这个可以放到一个label里面
StringBuilder sb=new StringBuilder();
for(int i=1;i<=pagecount;i++){
sb.Append("--<a href='?page=");
sb.Append(i);
sb.Append("'>");
sb.Append(i);
sb.Append("</a>--");
}
//用来显示每一页的连接,这个可以放到一个DropDownList里面
ArrayList al=new ArrayList();
for(int i=1;i<=pagecount;i++){
al.Add(i);
}
上面就是程序的主要部分。一步步的做下来,其中原本在asp中由recordset自动完成的事情,在这里变成由我们自己完成。最后提供了两个页和页之间连接的方法。

2004-5-12+ 用DataSet实现分页相关推荐

  1. 中国大陆 TOP 500 网站排行榜( 2004 年 12 月Alexa 过滤版)

    2004 年 12 月进入 Alexa 网站 TOP500 的中国大陆网站共计 122 家.依据<

  2. MyBatis学习总结(12)——Mybatis+Mysql分页查询

    package cn.tsjinrong.fastfile.util; /**  * @ClassName: Page  * @Description: TODO(分页组件的父类,用来封装分页的 通用 ...

  3. elasticsearch7.12 agg分组聚合分页同段同句查询

    pom 引入依赖: <!-- elasticsearch 7.16 --> <dependency><groupId>org.springframework.boo ...

  4. Django 基础(12)-Django drf 分页查询(批量查询)、自定义分页器

    文章目录 Django drf 分页查询(批量查询) PageNumberPagination:普通分页 Django 自定义分页器 自定义批量查询的返回结构 LimitOffsetPaginatio ...

  5. ASP.NET分页方法的了解程度

    ASP.NET分页方法的了解程度 [出现频率] ★★★★☆ [解答] ASP.NET分页的常用方法有以下几种. q 启用部分数据控件的内置分页功能,如设置GridView控件的"AllowP ...

  6. asp.net分页方法

    ASP.NET分页的是我们在编程过程中遇到的常见问题,下面就这个问题说下添美的看法. q 启用部分数据控件的内置分页功能,如设置GridView控件的"AllowPaging"属性 ...

  7. Asp.Net之分页查询

    一.NewList.aspx代码 主要是查看<div id="content_column">中的内容 <%@ Page Language="C#&qu ...

  8. TensorFlow数据读取方式:Dataset API,以及如何查看dataset:DatasetV1Adapter的方法

    TensorFlow数据读取方式:Dataset API Datasets:一种为TensorFlow 模型创建输入管道的新方式.把数组.元组.张量等转换成DatasetV1Adapter格式 Dat ...

  9. Linux的内存分页管理

    作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载 内存是计算机的主存储器.内存为进程开辟出进程空间,让进程在其中保存数据.我将从内存的物理特性出发,深入到内存 ...

最新文章

  1. 2021年大数据常用语言Scala(三十一):scala面向对象 特质(trait)
  2. java实现简易客户信息管理系统
  3. Tomcat系统架构
  4. MySQL中(delete、truncate、drop) 的区别
  5. 二进制文件mysql创表_MySQL_MYSQL中如何存取二进制文件,首先创建测试表testtable CREATE TA - phpStudy...
  6. 判断字符串最后两个字符
  7. java struts 拦截器_java框架篇---struts实现拦截器
  8. ureport 显示html,UReport2 与业务结合
  9. AUTOCAD——直线命令
  10. matlab irandon函数,在路上●我的年青●悠忽两年
  11. 我的原创IT著作再次被中科院图书馆、国图等国家级学术机构收藏!
  12. 使用微擎 微赞 微信登陆遇到redirect_uri 参数错误的设置办法
  13. 计算机上DEL和INS怎么转换,HGVS命名之【缺失插入】Deletion-insertion (delins/indel)
  14. 自媒体平台数据统计分析爬虫之【趣头条】模拟登陆分析详解及数据统计接口详解
  15. 从零开始学微信小程序开发:1
  16. 什么是函数的副作用——理解js编程中函数的副作用
  17. HTML-12:超链接锚点定位
  18. 解读最佳实践:倚天710 ARM芯片的 Python+AI 算力优化
  19. (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  20. 关于SCI正刊与专刊以及增刊的区别

热门文章

  1. Spring.Net的IOC入门
  2. 转载:每一个程序员要遵守的一些优秀编程风格
  3. Swift学习笔记(8)--函数
  4. 各国家分析之- 阿根廷与乌拉圭
  5. 为什么京东只能对商品评价不能对店铺评价?
  6. 【运营】运营高手的“葵花宝典”,你就是下一个东方不败
  7. LinkedList中查询(contains)和删除(remove)源码分析
  8. SQL注入原理及产生过程
  9. 【BZOJ】2982 combination
  10. 设计上如何避免EMC问题