有用的自定义pagecounter控件

概述
在实际的系统开发过程中经常会遇到系统自带的分页控件不能满足要求或者其样式太单一,需要自定义开发分页控件的情况,这个功能虽然很小但是很实用.

下图是这个自定义控件的显示



源代码下载 /Files/happlyonline/PageCounter.rar

使用
在使用这个pagecounter的页面给pagecounter控件的当前页,页大小,数据源的总count数的属性赋值即可.

None.gif int  page  =   1 ;
None.gifpage 
=  Convert.ToInt32(Page.Request.QueryString[ " page " ]);
None.gifPagerCounter.PageIndex 
=  page;
None.gifPagerCounter.PageSize 
=   20 ;
None.gifPagerCounter.UrlFormat 
=  Page.Request.Url.AbsolutePath  +   " ?page={0} " ;
None.gifPagerCounter.ItemCount 
=  Count;
None.gif

在页面换页后IE中的URL地址会改变为 http://xxx/xxx/xx.aspx?page=2, 所以在使用的时候需要考虑实际情况稍加修改

在gridview中使用自定义的分页控件
由于gridview提供了<PagerTemplate>的模版列,可根据实际情况在这里写自定义的分页控件

 有用的分页存储过程

None.gifCREATE procedure  sys_getpagerrecord
None.gif(
None.gif
@strSql Varchar(3000),    --传入的Sql语句

None.gif
@pagesize int,      --页面大小,如每页存储20条记录
None.gif
@pageindex int      --当前页码
None.gif
)
None.gif
as

None.gif
set nocount on
None.gif
begin
None.gif
declare @PageLowerBound int  --定义此页的底码
None.gif
declare @PageUpperBound int  --定义此页的顶码
None.gif
declare @execSql varchar(3000 )
None.gif
None.gif
set @PageLowerBound = (@pageindex-1* @pagesize

None.gif
set @PageUpperBound = @PageLowerBound + @pagesize
None.gif
set rowcount @PageUpperBound
None.gif
create table #IndexTable (id int Identity(1,1) , autoInc varchar(500 ))
None.gif
set @execSql = 'insert into #IndexTable (autoInc) select autoInc from (' +  @strSql + ') as tempview'

None.gif
print @execSql
None.gif
exec(@execSql )
None.gif
set @execSql = 'select * from (' + @strSql + ') as tempview inner join #IndexTable as b on tempview.autoInc = b.autoInc where b.id>' + str(@PageLowerBound+ ' and b.id<=' + str(@PageUpperBound+ ' order by b.id'

None.gif
print @execSql
None.gif
exec(@execSql )
None.gif
end

None.gif
set nocount off
None.gif
GO
None.gif

在这里set rowcount 主要用于提高性能每次只读取一页的数据

转载于:https://www.cnblogs.com/happlyonline/archive/2007/07/06/808212.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值