ASP.NET的DataList和Repeater控件_asp.net datalist和repeater-程序员宅基地

技术标签: ASP.Net  

ASP.NET提供了三个功能强大的列表控件:DataGrid、DataList和Repeater控件,但其中只有DataGrid控件提供分页功能。相对DataGrid,DataList和Repeater控件具有更高的样式自定义性,所以很多时候我们喜欢使用DataList和Repeater控件来显示数据。

ASP.NET实现DataList和Repeater控件的分页显示有几种方法:
1、写一个方法或存储过程,根据传入的页数返回需要显示的数据表(DataTable)
2、使用PagedDataSource类

本篇文章主要说怎么使用PagedDataSource类实现DataList和Repeater控件的分页显示。DataGrid控件内部也使用了 PagedDataSource类,PagedDataSource 类封装 DataGrid 控件的属性,这些属性使 DataGrid 可以执行分页。

PagedDataSource 类的部分公共属性:
AllowCustomPaging 获取或设置指示是否启用自定义分页的值。
AllowPaging 获取或设置指示是否启用分页的值。
Count 获取要从数据源使用的项数。
CurrentPageIndex 获取或设置当前页的索引。
DataSource 获取或设置数据源。
DataSourceCount 获取数据源中的项数。
FirstIndexInPage 获取页中的第一个索引。
IsCustomPagingEnabled 获取一个值,该值指示是否启用自定义分页。
IsFirstPage 获取一个值,该值指示当前页是否是首页。
IsLastPage 获取一个值,该值指示当前页是否是最后一页。
IsPagingEnabled 获取一个值,该值指示是否启用分页。
IsReadOnly 获取一个值,该值指示数据源是否是只读的。
IsSynchronized 获取一个值,该值指示是否同步对数据源的访问(线程安全)。
PageCount 获取显示数据源中的所有项所需要的总页数。
PageSize 获取或设置要在单页上显示的项数。
VirtualCount 获取或设置在使用自定义分页时数据源中的实际项数。

这些属性是否和DataGrid的属性很相似?没错,DataGrid控件就是使用PagedDataSource类来实现数据分页显示的 。下面举个ASP.NET使用PagedDataSource类实现DataList和Repeater控件的分页显示的例子:

 
 
  
  1. public void Page_Load(Object src,EventArgs e)  
  2. {  
  3. OleDbConnection objConn=new OleDbConnection(@"Provider=Microsoft. Jet.OLEDB.4.0; Data Source=c:\test.mdb");  
  4. OleDbDataAdapter objCommand=new OleDbDataAdapter ("select * from Users",objConn);  
  5. DataSet ds=new DataSet();  
  6. objCommand.Fill(ds);  
  7. //对PagedDataSource 对象的相关属性赋值  
  8.  PagedDataSource objPds = new PagedDataSource();  
  9. objPds.DataSource = ds.Tables[0].DefaultView;  
  10. objPds.AllowPaging = true;  
  11. objPds.PageSize = 5;  
  12. int CurPage;  
  13. //当前页面从Page查询参数获取  
  14.  if (Request.QueryString["Page"] != null)  
  15. CurPage=Convert.ToInt32(Request.QueryString["Page"]);  
  16. else  
  17. CurPage=1;  
  18. objPds.CurrentPageIndex = CurPage-1;  
  19. lblCurrentPage.Text = "Page: " + CurPage.ToString();  
  20. if (!objPds.IsFirstPage)  
  21. lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath + "? Page=" + Convert.ToString(CurPage-1);  
  22. if (!objPds.IsLastPage)  
  23. lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+ "? Page=" + Convert.ToString(CurPage+1);  
  24. //把PagedDataSource 对象赋给Repeater控件  
  25.  Repeater1.DataSource=objPds;  
  26. Repeater1.DataBind();  
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/my98800/article/details/78337307

智能推荐

“古剑山”第一届全国大学生网络攻防大赛初赛————(签到题)Misc | i have the flag_古剑山网络攻防大赛-程序员宅基地

文章浏览阅读1k次,点赞14次,收藏10次。“古剑山”第一届全国大学生网络攻防大赛初赛————(签到题)Misc | i have the flag_古剑山网络攻防大赛

ubuntu安装mysql8.0-程序员宅基地

文章浏览阅读562次,点赞25次,收藏10次。ubuntu安装mysql8.0

Ubuntu16.04安装Mediapipe_mdeiapipe ubuntu安装-程序员宅基地

文章浏览阅读6.1k次,点赞2次,收藏31次。最近在做一个和手势识别相关的东西,了解到google的MediaPipe效果不错而且开源,想着学习一下,于是有了下文的安装, MediaPipe官网提供多种操作系统的安装方法,这里我选择ubuntu系统Ubuntu安装MediaPipegithub下载Meidapipe代码$ git clone https://github.com/google/mediapipe.git# Cha..._mdeiapipe ubuntu安装

刷magisk模块后不能开机_OPPO Reno刷入ROOT后系统提示损坏,不能开机怎么办-程序员宅基地

文章浏览阅读2k次。OPPO Reno属于一款可以解锁BL的机型,也就是我们常说的深度测试,深度测试成功后就可以非常简单的去ROOT手机了,不会深度测试的看这里:深度测试教程深度测试名额有限,并且需满足一些条件才可以,我们建议用户申请深度测试有了深度测试后,就可以去刷TWRP_recovery了,ROM乐园教程区提供了丰富的TWRP,不少用户在成功刷入TWRP后,再刷入Magisk授权(也就是ROOT权限),再重启手..._oppo reno magisk

STM32 电机教程 11 - BLDC 6 步方波开环速度控制_csdn 打开 app stm32电机教程11- bldc 6步方波开环速度控制 原创 2019-1-程序员宅基地

文章浏览阅读1.2w次,点赞10次,收藏107次。前言无刷直流 (Brushless Direct Current, BLDC)电机是一种正快速普及的电机类型,它可在家用电器、汽车、航空航天、消费品、医疗、工业自动化设备和仪器等行业中使用。正如名称指出的那样,BLDC 电机不用电刷来换向,而是使用电子换向。BLDC 电机和有刷直流电机以及感应电机相比,有许多优点。其中包括:• 更好的转速-转矩特性• 快速动态响应• 高效率• ..._csdn 打开 app stm32电机教程11- bldc 6步方波开环速度控制 原创 2019-12-1614:06

koa-body 使用教程-程序员宅基地

文章浏览阅读7.7k次,点赞2次,收藏11次。本系列是我的常用koa中间件使用笔记,防止忘记使用方法而作记录koa-body是一个可以帮助解析http中body的部分的中间件,包括json、表单、文本、文件等。基本使用const Koa = require('koa'); // 引入koaconst app = new Koa(); // 创建koa应用const koaBody = require('koa-body'); //引入koa-bodyapp.use( koaBody({ .._koa-body

随便推点

【赛题解析】【网络建设与运维】第二阶段Windows Server DNS域名服务部分答案解析-程序员宅基地

文章浏览阅读200次。(1)在DNS的管理器中添加主机名为adrms,IP为云5的IP(2)添加主机名为iscsi,IP为云5的IP(3)关闭网络掩码排序功能:DNS管理器-DS-属性-高级-取消“启用网络掩码排序”-确定(4)设置DNS服务正向区域和反向区域与活动目录集成:在云1里面添加反

Eclipse里面找不到DatabaseExplorer_eclipse没有database-程序员宅基地

文章浏览阅读1.1w次,点赞4次,收藏28次。Eclipse里面找不到DatabaseExplorer?解决方案:追根溯源我的不是J2EE版本,根本没有window==>show view==>Other==>Data Management的Data Management.因此需要安装Database的插件,过程为:(1)Help==>Install New Software==>Other==>Data Management==>Dat_eclipse没有database

使用vue-awesome-swiper4.1.1不能自动轮播,配置无效[email protected] 无法进行轮播-程序员宅基地

文章浏览阅读770次。按照官网步骤安装引入使用配置autoplay: true,后发现配置无效,查了无数文档后,终于发现是swiper版本问题swiper版本从7.x降到了5.x:配置写法:[email protected] 无法进行轮播

使用异或加密数据-程序员宅基地

文章浏览阅读154次。(1)使用异或可简单加密数据,解密时使用加密后的数据与密钥重做一次异或运算即可。(2)由于某些操作系统不能正确处理非打印字符,因此,对于此类字符可采取原有不做加密。#include <stdio.h>#include <ctype.h>#define KEY 'z'int main(void){ char orig_char..._对数据,进行异或加密(应付苹果审核)

h5 vue vant @click @bulr 或者 移动端touch 事件冲突 解决办法_vant swipe 点击和触摸冲突-程序员宅基地

文章浏览阅读2.2k次。场景 失焦的时候关闭 选择列表 但是同时 点击列表的时候会触发 bulr 事件 然后 click事件失效解决办法 click 换 mousedown ( tips:事件优先执行顺序 mousedown > bulr > click)如果是移动端 同理 touchstart > bulr > touch..._vant swipe 点击和触摸冲突

ChirpStack+NodeRed+Thingsboard+树莓派实现LoraWAN节点MQTT上下行数据通信,手把手呈现整个过程(三)_树莓派 thingsboard-程序员宅基地

文章浏览阅读466次,点赞5次,收藏10次。MQTT通信时候,我们要用到访问令牌,设备ID、管理凭据一般不用_树莓派 thingsboard