第一种:自定义分页算法
优点:看哪一页数据,就取哪一页数据,效率比较高
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();