ASP.NET三种分页算法

第一种:自定义分页算法
优点:看哪一页数据,就取哪一页数据,效率比较高
   List<Item> items = ItemService.GetItems(sql,pagesize,CurrentPageindex,"itemid","price");
缺点:自已写分页的算法
--select*from item
declare @Sql varchar(3000)
set @sql = 'select top '+ cast(@pageSize as nvarchar)
+'* from ('+@sqlStr+') T where '
+@key+' not in (
select top ('+cast(@pageSize as nvarchar)
+'* ('+cast(@pageIndex as nvarchar)+'-1)) '+@key
+' from ('+@sqlStr +'  ) TX '
if(len(@orderField)>0)
  begin
    set @sql=@sql+' order by '+@orderField+')  order by '+@orderField
  end
else
   set @sql=@sql+')'
print @sql
exec(@sql)

第二种分页算法

create proc sp_Div_Pge_Two
@beginRow int,
@endRow int
as

begin

 select * from 
 (
select ROW_NUMBER() over(order by sname) as 新行号,
 * from  Students
 ) as newStus
 where 新行号  between @beginRow and @endRow
 order by 新行号
 end

第三种:pagedatasource
优点:由控件提供分页算法,程序员只要设置相关的参数
缺点:每次分页,要取出全部分数据pds.DataSource = ItemService.GetItems();数据量大时,不适合
PagedDataSource pds = new PagedDataSource();
pds.AllowPaging = true;
pds.CurrentPageIndex = CurrentPageIndex;
pds.DataSource = ItemService.GetItems();
pds.PageSize = this.pageSize;
this.pageCount = pds.PageCount;
this.lblInfo.Text = "第" + CurrentPageIndex  + "页,共" + this.PageCount + "页";
this.dlItems.DataSource = pds;
this.dlItems.DataBind();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值