ater控件,但其中只有DataGrid控件提供分页功能。相对DataGrid,DataList和Repeater控件具有更高的样式自定义性,所以很多时候我们喜欢使用DataList或Repeater控件来显示数据。
主要说怎么使用PagedDataSource类实现DataList和Repeater控件的分页显示。DataGrid控件内部也使用了PagedDataSource类,PagedDataSource 类封装 DataGrid 控件的属性,这些属性使 DataGrid 可以执行分页。
p
ublic void Page_Load(Object src,Event
args e)
{
OleDbConnection objConn=new OleDbConnection(@"
PRovider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\
test.mdb");
OleDbDataAdapter objCommand=new OleDbDataAdapter("select *
From Users",objConn);
DataSet ds=new DataSet();
objCommand.Fill(ds);
//对PagedDataSource 对象的相关属性赋值
PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = ds.Tables[0].DefaultView;
objPds.AllowPaging = true;
objPds.PageSize = 5;
int CurPage;
//当前页面从Page查询参数获取
if (Request.QueryString["Page"] != null)
CurPage=Convert.ToInt32(Request.QueryString["Page"]);
else
CurPage=1;
objPds.CurrentPageIndex = CurPage-1;
lblCurrentPage.Text = "Page: " + CurPage.ToString();
if (!objPds.IsFirstPage)
lnkP
rev.
navigateUrl=Request.CurrentExecutionFilePath+"?Page="+ onvert.ToString(CurPage-1);
if (!objPds.IsLastPage)
lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+"?Page="+Convert.ToString(CurPage+1);
//把PagedDataSource 对象赋给Repeater控件
Repeater1.DataSource=objPds;
Repeater1.DataBind();
}
实现Repeater分页功能,但有个缺点就是每次把所有的数据查询出来,如果数据量大的话,这样效率就会比较低。此时用存储过程实现较好!