关于Repeater和DataList控件分页,我习惯用二种方法实现,其一就是利用PagedDataSource类来实现,相对简单一些,方法一如下:
public void ListBind()
{
myConn=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("/data/data.mdb"));
OleDbDataAdapter myComm=new OleDbDataAdapter("select * from guestbook order by gbdate desc",myConn);
DataSet ds=new DataSet();
myComm.Fill(ds,"guestbook");
PagedDataSource pds=new PagedDataSource();
pds.DataSource=ds.Tables["guestbook"].DefaultView;
pds.AllowPaging=true;
pds.PageSize=8;
int CurrentPage;
if(Request.QueryString["Page"]!=null)
CurrentPage=Convert.ToInt32(Request.QueryString["Page"]);
else
CurrentPage=1;
pds.CurrentPageIndex=CurrentPage-1;
lblCurrentPage.Text=CurrentPage.ToString();
lblPageCount.Text=pds.PageCount.ToString();
if(!pds.IsFirstPage)
{
lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath+"?Page="+Convert.ToInt32(CurrentPage-1);
lnkFirst.NavigateUrl=Request.CurrentExecutionFilePath+"?Page=1";
}
if(!pds.IsLastPage)
{
lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+"?Page="+Convert.ToInt32(CurrentPage+1);
lnkLast.NavigateUrl=Request.CurrentExecutionFilePath+"?Page="+pds.PageCount;
}
dlstGuestbook.DataSource=pds;
dlstGuestbook.DataBind();
}