您的位置:首页 > 编程语言 > ASP

AspNetPager分页实际应用

2014-05-12 08:55 381 查看
---恢复内容开始---

首先,这个分页是快速开发的一种,弊端就是一次查询数据库全部,然后分页显示.

注意:

1,最好绑定的数据是一个list格式!

1首先打开
http://www.webdiyer.com下载AspNetPager

然后引用这个dll文件

然后在aspx前台最上面引用该dll

<%@RegisterAssembly="AspNetPager"Namespace="Wuqi.Webdiyer"TagPrefix="webdiyer"%>


2在展示数据用的一些控件下面复制上

<webdiyer:AspNetPagerID="AspNetPager1"runat="server"FirstPageText="首页"LastPageText="最后一页"
NextPageText="下一页"PrevPageText="上一页"OnPageChanged="AspNetPager1_PageChanged"
Font-Size="X-Large"ForeColor="#336699"HorizontalAlign="Center">
</webdiyer:AspNetPager>


3在后台要写上这样一个方法

protectedvoidAspNetPager1_PageChanged(objectsender,EventArgse)
{
BindDataTable();
}


4

BindDataTable();这个方法就是绑定数据的方法


privatevoidBindDataTable()
{
StringBuildersb=newStringBuilder();

    //GetAllList是查询数据,返回的是DataSet格式的,
DataSetds=bll.GetAllList(sb.ToString());
     //计算总共有多少条
AspNetPager1.RecordCount=ds.Tables[0].Rows.Count;
    //每页显示多少条
AspNetPager1.PageSize=10;
PagedDataSourcepds=newPagedDataSource();
pds.DataSource=ds.Tables[0].Rows.ToString();
pds.AllowCustomPaging=true;
pds.AllowPaging=true;
pds.CurrentPageIndex=AspNetPager1.CurrentPageIndex-1;
pds.PageSize=AspNetPager1.PageSize;
pagesize=AspNetPager1.PageSize;
inti=(pds.CurrentPageIndex)*pds.PageSize;
pageindex=pds.CurrentPageIndex;
    //这是创建一个实体类,来把DataSet格式转换list格式
List<ChaxunClass>list=newList<ChaxunClass>();
    //遍历数据,已list格式输出
foreach(DataRowrowinds.Tables[0].Rows)
{
      
ChaxunClasscl=newChaxunClass();
cl.num=row["第三方卡"].ToString();

list.Add(cl);
}
this.Repeater1.DataSource=list.Skip((pds.CurrentPageIndex)*pds.PageSize).Take(pds.PageSize);;
this.Repeater1.DataBind();
}


以上是最初的,后来研究下还是在这样方便,一个分页干吗要用2个控件
后台改成,


DataSetds=bll.GetAllList(sb.ToString());
intPageCount=AspNetPager1.RecordCount=ds.Tables[0].Rows.Count;
pagesize=AspNetPager1.PageSize=10;
pageindex=AspNetPager1.CurrentPageIndex;
List<ChaxunClass>list=newList<ChaxunClass>();
foreach(DataRowrowinds.Tables[0].Rows)
{
ChaxunClasscl=newChaxunClass();
cl.num=row["第三方卡"].ToString();
list.Add(cl);
}
this.Repeater1.DataSource=list.Skip((pagesize)*(pageindex-1)).Take(pagesize);
this.Repeater1.DataBind();


前台索引自增排序这样写

<%#(pageindex-1)*pagesize+Container.ItemIndex+1%>


倒序排序这样写

<%#(PageCount-(pageindex-1)*pagesize)-Container.ItemIndex%>



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: