作者:zhoubin@mail.sdu.edu.cn

以前做ASP的时间不算短,可是做ASP.NET我是个新手。前几天做项目,遇到一个问题,要求比较复杂的数据格式显示,用DataGrid非常难实现,后来改用了Repeater控件来实现。不过这样就带来一个新问题:怎么分页?Repeater没有内置的分页功能。后来自己试着写了一个,侥幸成功了。匆匆写就,肯定不完善,哪位高手有何高见请及时指正,很愿意与各位交流(zhoubin@mail.sdu.edu.cn)

protected System.Web.UI.WebControls.Repeater rptFramework

private void Page_Load(object sender, System.EventArgs e)
{

//建立DataSet
(该部分省略)

rptFramework.DataSource = myDataSet;
rptFramework.DataBind();

Session["page"] = 1;

//将Repeater所有条目隐藏
int i = 0 ;

for( i = 0 ; i < rptFramework.Items.Count ; i++ )
{
rptFramework.Items[i].Visible = false;
}

//Repeater控件的页面大小
int intPageSize = 10;

//rptFramework控件的当前页索引(1起始)
int intCurrentPageIndex = 0 ;

if ( Request.QueryString["page"] == null || Convert.ToInt32( Request.QueryString["page"] ) == 0 )
{
Session["page"] = 1 ;
}
else
{
Session["page"] = Convert.ToInt32( Request.QueryString["page"] );
}

intCurrentPageIndex = Convert.ToInt32( Session["page"] );

//上一页按钮屏蔽
if ( Convert.ToInt32( Session["page"] ) == 1 )
{
btnPre.Enabled = false;
}

//rptFramework控件的当前游标索引(1起始)
int intCurrentItemIndex = 1 ;
intCurrentItemIndex = intPageSize * ( intCurrentPageIndex - 1 ) + 1 ;

//下一页按钮屏蔽
if ( (rptFramework.Items.Count - intCurrentItemIndex) < intPageSize )
{
btnNext.Enabled = false;
}

//设置窗体加载时的默认视图
if ( rptFramework.Items.Count > intPageSize )
{
for (i = intCurrentItemIndex ; i < GetMin( rptFramework.Items.Count , intCurrentItemIndex + intPageSize ) ; i++ )
{
rptFramework.Items[i-1].Visible = true;
}

}

}

//取两个数值中较小的值,但是不改变原数值大小
private int GetMin( int a , int b )
{
int c ;
if ( a > b )
{
c = b;
}
else
{
c = a;
}
return c;
}

//点击上一页按钮
private void btnPre_Click(object sender, System.EventArgs e)
{

int intPrePageIndex = 2;

if ( Convert.ToInt32( Session["page"] ) != 1 )
{
intPrePageIndex = Convert.ToInt32( Session["page"] ) - 1;
}
else
{
intPrePageIndex = 1;
}

Response.Redirect( "jggk.aspx?page=" + intPrePageIndex.ToString() );
}

//点击下一页按钮
private void btnNext_Click(object sender, System.EventArgs e)
{
int intNextPageIndex = Convert.ToInt32( Session["page"] ) + 1;
Response.Redirect( "jggk.aspx?page=" + intNextPageIndex.ToString() );

Repeater控件的分页问题相关推荐

  1. Datalist控件,Repeater控件如何分页?

    Asp.net提供了三个功能强大的列表控件:DataGrid.DataList和Repeater控件,但其中只有DataGrid控件提供分页功能.相对DataGrid,DataList和Repeate ...

  2. 读书笔记:《Aspx开发200问》——如何实现Repeater控件的分页

    由于Repeater控件没有分页相关的属性,要使用System.Web.UI.WebControl中的PageDataSource类. PageDataSource封装了DataGrid控件的分页属性 ...

  3. 使用PagedDataSource类实现DataList和Repeater控件的分页显示

    Asp.net提供了三个功能强大的列表控件:DataGrid.DataList和Repeater控件,但其中只有DataGrid控件提供分页功能.相对DataGrid,DataList和Repeate ...

  4. 在 DataList 或 Repeater 控件中分页报表数据44

    简介 在在线应用程序中显示数据时,分页和排序是两个非常常见的功能.例如,在一个在线书店搜寻 ASP.NET 书籍时,可能会有数以百计种这样的图书,但在报表的每页只列出十个匹配的搜索结果.而且,搜索结果 ...

  5. ASP.NET中Repeater控件实现分页功能

    Repeater 轻量级,完全的自定义 Repeater分页,需要依靠PagedDataSource.这个类存在于System.Web.UI.WebControls命名空间.它的作用是作为数据源与数据 ...

  6. repeater控件 php,Repeater控件实现编辑、更新、删除操作

    如何在Repeater控件中实现像GridView控件一样的编辑.更新.删除功能? 下面给出示例 vs.net2008(C#)下编写.来自 admin10000.com 后台.cs代码protecte ...

  7. Repeater控件结合UpdatePanel实现Ajax分页和删除功能

    本人一直抱怨使用GridView来实现分页,删除等功能,GridView效率低下(虽然我们什么基本什么都不用做),而且不是很灵活,最近才发现Repeater控件实在是一个不错的控件.       首先 ...

  8. aspx repeater 用法_详解ASP.NET数据绑定操作中Repeater控件的用法

    一.绑定控件之Repeater.NET封装了多种数据绑定控件,诸如GridView.DataList等但该篇文章将会从Repeater入手,因为Repeater只提供了基本的数据绑定模板,没有内置其它 ...

  9. repeater控件 php,asp.net Repeater控件的说明及详细介绍及使用方法

    Repeater 控件不具备内置的呈现功能,这表示用户必须通过创建模板为 Repeater 控件提供布局.当该页运行时,Repeater 控件依次通过数据源中的记录为每个记录呈现一个项. 他很简单,用 ...

最新文章

  1. 华数传媒牵手阿里云计算共建媒体云平台
  2. redis中有key但是删不掉_一篇图文,搞定Redis事务
  3. pythonrequests发送数据_在python中使用requests 模拟浏览器发送请求数据的方法
  4. python对字符串和集合的内存垃圾回收机制
  5. HDU4292-Food-网络流
  6. 使用solr的完整流程
  7. mac 连接hbase的图形化界面_MAC安装Hbase以及Hbase基本命令
  8. linux网络编程(四)线程池
  9. 部署HDFS HA的环境
  10. 请说明Request和Session的生命周期
  11. jmespath查找JSON的工具
  12. java-redis字符类数据操作示例(一)
  13. BZOJ 1715: [Usaco2006 Dec]Wormholes 虫洞 DFS版SPFA判负环
  14. 特征向量、标签、模型、算法
  15. oracle是什么数据库管理系统,数据库管理系统
  16. 国产操作系统统信UOS简单体验评测
  17. 我就这样忍了一生——星云大师
  18. pandas 学习汇总10 - 统计:窗口函数rolling,expanding( tcy)
  19. uniapp连接到微信小程序调试全过程以及遇到的bug
  20. MySQL客户端软件安装_003

热门文章

  1. linux 7 vsftpd 配置,CentOS7 安装并配置使用vsftpd
  2. 用计算机计算成品率计算公式,计算机专业英语+单词+部分习题.doc
  3. 计算机财务应用实验心得,计算机会计实习心得-20210628124643.doc-原创力文档
  4. C++:随笔9----模板/内联函数/容器
  5. Python+OpenCV图像处理实验
  6. keras 的 example 文件 deep_dream.py 解析
  7. Linux那些事儿 之 戏说USB(16)配置
  8. OpenGL Transformation
  9. Maya2022基础入门学习教程
  10. 《Bigtable:a distributed storage system for struct data》笔记