用AspNetPager实现数据的分页
当网页中的内容较多时,就不能让其所有内容在同一页面显示,那样既不美观又影响性能。所以说将数据分页显示还是非常有必要的。下面一起来看看我今天给大家介绍的这个分页吧!
分页效果图:
实现此效果需要用到一个叫做AspNetPager的第三方控件,百度一下就能找到。下载后放到相应的目录,然后将其引用,最后添加到工具箱即可使用。添加到工具箱的步骤如下:
在弹出的对话框内点击浏览,找到AspNetPager.dll点击打开,添加成功!
添加完以后接下来看看代码部分
分页控件的相关属性设置:
设置每页显示的最大记录数、相关按钮上的文字,一眼就能看懂。
<webdiyer:AspNetPager ID="anp" runat="server" PageSize="8" OnPageChanged="anp_pagechanged" FirstPageText="第一页" LastPageText="最后一页" NextPageText="下一页" PrevPageText="上一页" CustomInfoHTML="总计%RecordCount%条纪录,共%PageCount%页" ShowCustomInfoSection="Left" ShowPageIndexBox="Never" CssClass="paginator" CurrentPageButtonClass="cpb" AlwaysShow="True" CustomInfoSectionWidth=""> </webdiyer:AspNetPager>
分页控件的CSS样式:
/*全局样式*/ .paginator { font: 11px Arial, Helvetica, sans-serif; padding: 10px 20px 10px 10px; margin: 0px; } /*超链接默认样式*/ .paginator a { padding: 1px 6px; border: solid 1px #ddd; background: #fff; text-decoration: none; margin-right: 2px; color:Blue; } /*链接访问后的样式*/ .paginator a:visited { padding: 1px 6px; border: solid 1px #ddd; background: #fff; text-decoration: none; } /*鼠标移到链接上的样式*/ .paginator a:hover { background-color:Orange; } /*按钮样式*/ .paginator .cpb { padding: 1px 6px; font-weight: bold; font-size: 13px; border: none; }
分页存储过程:
主要是根据自己的需要拼接查询语句,选出需要的内容。具体怎么写看自己的需要。
USE [newssystem] GO /****** Object: StoredProcedure [dbo].[proc_FengYe] Script Date: 10/02/2012 10:35:09 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: 刘水镜 -- Create date: 2012-07-22 12:41 -- Description: 分页,用到了ROW_NUMBER() -- ============================================= ALTER PROCEDURE [dbo].[proc_FenYe] @tblName varchar(255), -- 表名 @strGetFields varchar(1000) = '*', -- 需要返回的列,默认* @strOrder varchar(255)='', -- 排序的字段名,必填 @strOrderType varchar(10)='ASC', -- 排序的方式,默认ASC @PageSize int = 10, -- 页尺寸,默认10 @PageIndex int = 1, -- 页码,默认1 @strWhere varchar(1500) = '' -- 查询条件 (注意: 不要加 where) AS declare @strSQL varchar(5000) if @strWhere !='' set @strWhere=' where '+@strWhere set @strSQL= 'SELECT * FROM ('+ 'SELECT ROW_NUMBER() OVER (ORDER BY '+@strOrder+' '+@strOrderType+') AS pos,'+@strGetFields+' '+ 'FROM '+@tblName+' '+@strWhere+ ') AS sp WHERE pos BETWEEN '+str((@PageIndex-1)*@PageSize+1)+' AND '+str(@PageIndex*@PageSize) exec (@strSQL)
完成以上工作,分页基本上就实现了,只需要在加上一些绑定数据的语句,就可以实现一个完整的分页功能了。大概也就这些了,有什么不足之处欢迎指正批评。