第一种:自定义分页算法
优点:看哪一页数据,就取哪一页数据,效率比较高
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
(
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();
优点:看哪一页数据,就取哪一页数据,效率比较高
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();
本文深入探讨了三种分页算法:自定义分页、存储过程分页和PagedList控件分页。通过具体代码示例,详细解释了每种算法的工作原理、优缺点,并在不同场景下的适用性。
143

被折叠的 条评论
为什么被折叠?



