使用AspNetPager高效分页..

第三方控件下载地址:http://www.webdiyer.com/Controls/AspNetPager/Downloads

 

实现最基本的高效分页 需要两个存储过程,第一个是获取全部数据数量的SQL,第二个是分页用的SQL语句了

 先上SQL代码:分页用的存储过程 

 

CREATE PROCEDURE Proc_GridView_Pager
    
@startIndex int,
    
@endIndex int
AS
BEGIN
    
select * from (
    
select a.id,a.saleName,a.price,a.count,a.amount,b.Name,a.inDate,row_number()over(order by a.inDate desc)rownum
    
from InBill a
    
inner join InBillType b
    
on a.InTypeId = b.id
) t
where t.rownum >=@startIndex and t.rownum<=@endIndex;
END

 GO 


获取数据总数量的存储过程


 CREATE PROCEDURE Proc_GetAllData_Count

 AS
 

BEGIN

selectcount(*from inbill

 END

GO 

 

然后给aspnetPager添加PageChanged 事件代码如下:这个是分页用的代码

string commandText = "Proc_GridView_Pager";
            gvInBillList.DataSource 
= SQLHelper.GetDateSet(commandText, CommandType.StoredProcedure,
            new SqlParameter("
@startIndex", anpGridView.StartRecordIndex),
            new SqlParameter("
@endIndex", anpGridView.EndRecordIndex));

            gvInBillList.DataBind(); 

   

最后一步了,就是上面提到的获取全部数据的存储过程,就是在这个时候用了,当页面加载的时候调用方法

 anpGridView.RecordCount = new InBillManager().GetAllDataCount();

 

 

posted @ 2011-05-18 13:26  ゞ追忆o0ゞ  阅读(426)  评论(0编辑  收藏  举报