使用AspNetPage控件,翻页成功,但是每个分页显示的pagesize不同,例如:设置pagesize为6,则分页显示为4或5;具体的代码如下:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
int totalOrders = (int)SqlHelper.ExecuteScalar (CommandType.StoredProcedure,"B_GetOrderNumber");
pager.RecordCount = totalOrders;
BindData();
}
}
void BindData()
{
cmd = new SqlCommand("Blog_Article_GetPaged", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@pageindex", pager.CurrentPageIndex);
cmd.Parameters.Add("@pagesize", 6);
Repeater rpt1 = (Repeater)UpdatePanel1.FindControl("repeater1");
conn.Open();
rpt1.DataSource = cmd.ExecuteReader();
rpt1.DataBind();
conn.Close();
}存储过程为:
CREATE PROCEDURE B_GetOrderNumber
AS
select count(*) from Blog_Article where Type<>'文章点评';RETURN
Go
//--------------------------------------------------------------------------------------------------//
CREATE procedure Blog_Article_GetPaged
(@pagesize int,
@pageindex int
)
as
set nocount on
begin
declare @indextable table(id int identity(1,1),nid int)
declare @PageLowerBound int
declare @PageUpperBound int
set @PageLowerBound=(@pageindex-1)*@pagesize
set @PageUpperBound=@PageLowerBound+@pagesize
set rowcount @PageUpperBound
insert into @indextable(nid) select ArticleNumber from Blog_Article order by Create_date desc
select O.ArticleNumber,O.Title,SUBSTRING(O.Content,0,20) as Content,O.Type,O.Status from Blog_Article O,@indextable t where O.Type<>'文章点评' and O.ArticleNumber=t.nid
and t.id>@PageLowerBound and t.id<=@PageUpperBound order by t.id ,O.Create_date desc
end
set nocount off
GO
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
int totalOrders = (int)SqlHelper.ExecuteScalar (CommandType.StoredProcedure,"B_GetOrderNumber");
pager.RecordCount = totalOrders;
BindData();
}
}
void BindData()
{
cmd = new SqlCommand("Blog_Article_GetPaged", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@pageindex", pager.CurrentPageIndex);
cmd.Parameters.Add("@pagesize", 6);
Repeater rpt1 = (Repeater)UpdatePanel1.FindControl("repeater1");
conn.Open();
rpt1.DataSource = cmd.ExecuteReader();
rpt1.DataBind();
conn.Close();
}存储过程为:
CREATE PROCEDURE B_GetOrderNumber
AS
select count(*) from Blog_Article where Type<>'文章点评';RETURN
Go
//--------------------------------------------------------------------------------------------------//
CREATE procedure Blog_Article_GetPaged
(@pagesize int,
@pageindex int
)
as
set nocount on
begin
declare @indextable table(id int identity(1,1),nid int)
declare @PageLowerBound int
declare @PageUpperBound int
set @PageLowerBound=(@pageindex-1)*@pagesize
set @PageUpperBound=@PageLowerBound+@pagesize
set rowcount @PageUpperBound
insert into @indextable(nid) select ArticleNumber from Blog_Article order by Create_date desc
select O.ArticleNumber,O.Title,SUBSTRING(O.Content,0,20) as Content,O.Type,O.Status from Blog_Article O,@indextable t where O.Type<>'文章点评' and O.ArticleNumber=t.nid
and t.id>@PageLowerBound and t.id<=@PageUpperBound order by t.id ,O.Create_date desc
end
set nocount off
GO
cmd.Parameters.Add("@pagesize", pager.PageSize);
(@pagesize int,
@pageindex int
)
as
set nocount on
begin
declare @indextable table(id int identity(1,1),nid int)
declare @PageLowerBound int
declare @PageUpperBound int
set @PageLowerBound=(@pageindex-1)*@pagesize
set @PageUpperBound=@PageLowerBound+@pagesize
set rowcount @PageUpperBound
insert into @indextable(nid) select ArticleNumber from Blog_Article where Type <>'文章点评' order by Create_date desc
select O.ArticleNumber,O.Title,SUBSTRING(O.Content,0,20) as Content,O.Type,O.Status from Blog_Article O,@indextable t where O.ArticleNumber=t.nid
and t.id>@PageLowerBound and t.id <=@PageUpperBound order by t.id ,O.Create_date desc
end
set nocount off
GO
select O.ArticleNumber,O.Title,SUBSTRING(O.Content,0,20) as Content,O.Type,O.Status from Blog_Article O,@indextable t where O.Type <>'文章点评' and O.ArticleNumber=t.nid
and t.id>@PageLowerBound and t.id <=@PageUpperBound order by t.id ,O.Create_date desc 这两个要一致,条件、排序字段!