AspNetPager控件是一个基于.net的第三方免费开源控件,具有开发高效、使用方便、功能完整等优点。它弥补了GridView内置分页以及PageDatasource类辅助分页的不足,将分页数据逻辑和页面UI分离开来,非常有利于SQL分页的实现。下面仅举一个最基本的用法,帮助初学者入门。

到AspNetPage官方网站相应页面下载控件:点击打开链接

下载后解压缩,里面有一个AspNetPager.dll文件,它就是我们要使用的控件。另外还有一个AspNetPager.xml文件,它是对应的文档,主要有两个作用:一是供开发人员使用控件时在代码智能提示里嵌入使用说明,二是供自动生成文档工具生成文档。我们把这两个文件一并放到网站的Bin文件下,然后在Visual Studio 2008 Express的工具箱内添加该控件。接着往页面中拖一个GridView和一个AspNetPager控件。

为AspNetPager控件设置相应属性和事件,实现分页功能,这是该控件最重要最基本的用法。代码如下:

Default.aspx文件相关代码:

  1. <asp:GridView ID="GridView1" runat="server">
  2. </asp:GridView>
  3. <webdiyer:AspNetPager ID="AspNetPager1" runat="server" PageSize="20"
  4. onpagechanging="AspNetPager1_PageChanging">
  5. </webdiyer:AspNetPager>

Default.aspx.cs文件相关代码:

  1. protected void Page_Load(object sender, EventArgs e)
  2. {
  3. if (!IsPostBack)
  4. DisplayData(1, AspNetPager1.PageSize);
  5. }
  6. private void DisplayData(int pageIndex, int pageSize)
  7. {
  8. SQLiteData md = new SQLiteData();
  9. AspNetPager1.RecordCount = md.ExecuteScalar<int>("select count(*) from city");
  10. DataTable dt = md.FillDataTable(string.Format("select * from city limit {0},{1}", (pageIndex - 1) * pageSize, pageSize));
  11. md.Close();
  12. GridView1.DataSource = dt;
  13. GridView1.DataBind();
  14. }
  15. protected void AspNetPager1_PageChanging(object src, PageChangingEventArgs e)
  16. {
  17. DisplayData(e.NewPageIndex, AspNetPager1.PageSize);
  18. }

首先在aspx文件里设置PageSize属性,指出每页的大小为20条记录。然后在后台给出总记录数RecordCount、当前页码e.NewPageIndex。其中DisplayData方法编写的好坏很重要,这里显然实现的比较简练。当第一次访问页面时,显示第1页、每页20条记录;以后选择其他页时,显示第e.NewPageIndex页、每页20条记录。本示例使用的是SQLite数据库,支持limit关键词,所以分页逻辑比较简单。需要说明的是,这里用到了自己编写的数据库操作类SQLiteData类,读者可以改写成用原生ADO.net操作,难度不大。

最后显示效果:


AspNetPager控件功能比较强大,这里只不过介绍了最基本用法,以后有机会会介绍其他功能。

最新文章

  1. 【开源】.Net Api开放接口文档网站
  2. 【WPF】日常笔记
  3. Css - 文本溢出处理
  4. easyui的页面等待提示层,即mask
  5. Android开发随笔4
  6. python偏函数(functool.partail)
  7. cmake编译(编译目标)x86或x64
  8. 读headFirst设计模式 - 工厂模式
  9. js 检测输入内容是否为空(小程序,网站)
  10. Java第二次上机随笔
  11. springboot连mysql报一个奇怪的错误
  12. Confluence 6 选择一个外部数据库
  13. ppt提取文字
  14. Vue项目兼容IE浏览器
  15. ****************VS编码操作实践******************
  16. BZOJ 1083 [SCOI2005]繁忙的都市 (最小生成树裸题无重边) 超简单写法!!
  17. javascript 中XMLHttpRequest 实现前台向后台的交互
  18. Strus默认跳转方式是请求转发 地址栏不变 与javaweb的内部转发一样
  19. Python3量化技术常用插件
  20. RNAseq 流程

热门文章

  1. 四人小组:vip会员管理系统
  2. 计算机网络【6】—— 从浏览器输入URL到显示页面发生了什么
  3. JavaScript的setTimeout()和setInterval()
  4. 设置快捷键 让word轻松实现无格式粘贴
  5. mysql测试索引在表中的作用
  6. http请求头、响应头文件详解
  7. 【BZOJ4991】我也不知道题目名字是什么(线段树)
  8. BZOJ3672 [Noi2014]购票 【点分治 + 斜率优化】
  9. debian8安装harbor
  10. POI操作word和html相互转化