分页技术之PageDataSource类
之前给大家介绍了分页技术之Gridview控件,今天给大家介绍另外一种分页技术,采用PageDataSource类 + Repeater控件来实现。
前台只需要拖出一个Repeater控件来绑定要显示数据即可。
后台代码的实现具体步骤如下:
第一步:连接数据库获取要显示的内容
//连接数据库及将数据封装到一个数据集中
Db db = new Db(); DataSet ds = db.GetDataSet ( sql ); //将DataSet绑定到PageDataSource
PagedDataSource ps = new PagedDataSource(); ps.DataSource = ds.Tables[0].DefaultView;
第二步:设置PageDataSource相关属性
//设置属性为允许分页
ps.AllowPaging = true; //获取当前页面数 int CurPage; if (Request.QueryString["Page"] != null) //当前请求页面 CurPage = Convert.ToInt32(Request.QueryString["Page"]); else CurPage = 1; //每个页面显示的条数 ps.PageSize = 20; //求数据的总数 allmsg.Text = ps.DataSourceCount.ToString(); ps.CurrentPageIndex = CurPage - 1; //求总页数 allpages.Text = ps.PageCount.ToString(); nowpage.Text = CurPage.ToString();
第三步:将数据源绑定到Repeater控件
//将数据源与控件绑定
Repeater1.DataSource = ps;
Repeater1.DataBind();
第四步:设置‘上一页’、‘下一页’、‘首页’、‘尾页’按钮的链接URL
if (!ps.IsFirstPage)
{
//首页页
firstpage.NavigateUrl = Request.CurrentExecutionFilePath +"?Page=1&id=" + articleid + "";
//上一页
divpage.NavigateUrl = Request.CurrentExecutionFilePath +"?Page="+Convert.ToString(CurPage - 1)+"" + "&id="+articleid+"";
}
if (!ps.IsLastPage)
{
//下一页
nextpage.NavigateUrl=Request.CurrentExecutionFilePath + "?Page="+ Convert.ToString(CurPage + 1)+"" + "&id="+articleid+"";
// 尾页
endpage.NavigateUrl=Request.CurrentExecutionFilePath+"?Page="+Convert.ToString(ps.PageCount) + "" + "&id=" + articleid + "";
}
分页技术之PageDataSource类的更多相关文章
- Javaweb 第15天 web练习和分页技术
第15天 web练习和分页技术 复习day14内容: 学习新技术的思路? 分析功能的思路? 使用queryRunner操作数据库的步骤? ResultSetHandler接口常用实现类(三个重点)? ...
- 改进Spring中的分页技术
Spring中有一个PagedListHolder,能够实现分页. 但此类有几个缺点: 1. 使用此类的代码比較繁琐 2. 此类存放的数据源是全部的记录集,即对于记录数为1000条的数据,即使我们仅仅 ...
- 【MFC】利用单一对话框内的分页技术实现向导功能(转)
原文转自 http://blog.csdn.net/yongh701/article/details/43793151 所谓的向导功能,在win32的程序中常常见于安装程序或者程序内的设置向导,该向导 ...
- Mysql学习总结(32)——MySQL分页技术详解
1.什么是数据分页:数据分页就是将很多条记录像书本一样分页,每页显示多少行记录: 2.为什么要数据分页:当我们进行sql语句查询时,假如数据有成千上万行记录,如果在同一个页面去显示,那这个页面得有多大 ...
- tp中使用分页技术
1 public function showList() { $m_ld = D ( 'guangxi_ld' ); $page = I ( 'get.p', 1 ); // 在配置中获取分页值 $p ...
- Servlet分页技术
这是看韩顺平老师的servlet视频,自己动手写的,楼主看韩顺平老师的servlet是2006制作的,用的是sql server数据库,自己又用的是oracle数据库,所以怕有的同学遇到同样的问题,不 ...
- jsp-------------之分页技术(一)
jsp分页技术之: 如下图:百度的喵 看上图中卡哇伊的小苗的爪子下面的数字,就是分页啦!那我们如何做出这样一个效果呢? 下面我们来逐一分解: jsp分页技术一 : (算法) /* int pageS ...
- 分页技术之GridView控件
GridView控件实现分页技术 第一步:设置GridView控件的属性,跟分页相关的属性设置如下: AllowPaging="true":允许分页, PageSize=" ...
- 理解ATL中的一些汇编代码(通过Thunk技术来调用类成员函数)
我们知道ATL(活动模板库)是一套很小巧高效的COM开发库,它本身的核心文件其实没几个,COM相关的(主要是atlbase.h, atlcom.h),另外还有一个窗口相关的(atlwin.h), 所以 ...
随机推荐
- BZOJ 3570 动物园
Description 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的真才实学向游客要吃的,园长决定开设算法班,让动物们学习 ...
- Unity网络斗地主 服务端
Unity网络斗地主 服务端 @by梦想之家2工作室 阿龙 已经做好了服务器框架,并且能实现服务器给客户端分牌的问题!
- codeforces C. Sereja and Swaps
http://codeforces.com/contest/426/problem/C 题意:找出连续序列的和的最大值,可以允许交换k次任意位置的两个数. 思路:枚举区间,依次把区间内的比较小的数换成 ...
- Android中attr自定义属性详解
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:wen=http ...
- 【贪心】Codeforces 704B & 705D Ant Man
题目链接: http://codeforces.com/problemset/problem/704/B 题目大意: 给N个点,起点S终点T,每个点有X,A,B,C,D,根据I和J的X坐标可得I到J的 ...
- 高效算法——C 分饼
My birthday is coming up and traditionally I’m serving pie. Not just one pie, no, I have a number N ...
- div+css模式编写html静态网页例子_仿照网页制作
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 付出半个小时的笔误级BUG
一开始,我为了偷懒将所有的任务全都压在了一个浮动指针上: for (; CCPtr->S != NULL; CCPtr->S = CCPtr->S->next) // for ...
- hdu 4604 Deque(最长上升与下降子序列-能够重复)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4604 这个题解有点问题,暂时没时间改,还是参考别人的吧 #include <cstdio> ...
- POI使用详解
Apache POI使用详解 1.POI结构与常用类 (1)POI介绍 Apache POI是Apache软件基金会的开源项目,POI提供API给Java程序对Microsoft Office格式档案 ...