DataList分页技术-- PagedDataSource类实现DataList和Repeater的分页效果
?實現DataList或Repeater控件的分頁顯示有幾種方法:
?1、寫一個方法或存儲過程,根據傳入的頁數返回需要顯示的數據表(DataTable)
?2、使用PagedDataSource類
???? 本篇文章主要說怎么使用PagedDataSource類實現DataList和Repeater控件的分頁顯示。DataGrid控件內部也使用了PagedDataSource類,PagedDataSource 類封裝 DataGrid 控件的屬性,這些屬性使 DataGrid 可以執行分頁。
?PagedDataSource 類的部分公共屬性:
?AllowCustomPaging ?獲取或設置指示是否啟用自定義分頁的值。
?AllowPaging ??獲取或設置指示是否啟用分頁的值。
?Count ???獲取要從數據源使用的項數。
?CurrentPageIndex ??獲取或設置當前頁的索引。
?DataSource ??獲取或設置數據源。
?DataSourceCount ??獲取數據源中的項數。
?FirstIndexInPage ??獲取頁中的第一個索引。
?IsCustomPagingEnabled ?獲取一個值,該值指示是否啟用自定義分頁。
?IsFirstPage ??獲取一個值,該值指示當前頁是否是首頁。
?IsLastPage ??獲取一個值,該值指示當前頁是否是最后一頁。
?IsPagingEnabled ??獲取一個值,該值指示是否啟用分頁。
?IsReadOnly ??獲取一個值,該值指示數據源是否是只讀的。
?IsSynchronized ??獲取一個值,該值指示是否同步對數據源的訪問(線程安全)。
?PageCount ??獲取顯示數據源中的所有項所需要的總頁數。
?PageSize ??獲取或設置要在單頁上顯示的項數。
?VirtualCount ??獲取或設置在使用自定義分頁時數據源中的實際項數。
????? 這些屬性是否和DataGrid的屬性很相似?沒錯,DataGrid控件就是使用PagedDataSource類來實現數據分頁顯示的 。下面舉個使用PagedDataSource類實現DataList和Repeater控件的分頁顯示的例子:
?{
?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)
??lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath?+?"?Page="?+?Convert.ToString(CurPage-1);
?if?(!objPds.IsLastPage)
??lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+?"?Page="?+?Convert.ToString(CurPage+1);
?//把PagedDataSource?對象賦給Repeater控件
?Repeater1.DataSource=objPds;
?Repeater1.DataBind();
?}
?
這樣就可以很簡單的實現DataList和Repeater控件的分頁顯示。但這樣做有個缺點,就是每次都要把所有頁的數據Select出來,DataGrid也是這樣,這樣會降低一點效率(大多時候體會不出來差別);如果使用第一種方法就可以只Select出當前頁的數據(實現方法請查看有關文章)用上面的方法是最方便的實現DataList分頁的。只不過,效率看似有點底啊。。那個AspNetPage太難用了。不知道有沒有更好的方法了,即簡單又高效一點的。。轉:http://blog.csdn.net/fzzf/archive/2005/11/28/538603.aspx
轉載于:https://www.cnblogs.com/Dragon-China/archive/2007/09/10/888635.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的DataList分页技术-- PagedDataSource类实现DataList和Repeater的分页效果的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言-----职工信息管理系统
- 下一篇: 2021软件测试、自动化测试、面试题整理