使用PagedDataSource類實現DataList和Repeater控制元件的分頁顯示 (轉)
提供了三個功能強大的列表:DataGrid、DataList和Repeater控制元件,但其中只有DataGrid控制元件提供分頁功能。相對DataGrid,DataList和Repeater控制元件具有更高的樣式自定義性,所以很多時候我們喜歡使用DataList或Repeater控制元件來顯示資料。
實現DataList或Repeater控制元件的分頁顯示有幾種方法:
1、寫一個方法或過程,根據傳入的頁數返回需要顯示的資料表(DataTable)
2、使用PagedData類
本篇文章主要說怎麼使用PagedDataSource類實現DataList和Repeater控制元件的分頁顯示。DataGrid控制元件內部也使用了PagedDataSource類,PagedDataSource 類封裝 DataGrid 控制元件的屬性,這些屬性使 DataGrid 可以分頁。
PagedDataSource 類的部分公共屬性:
AllowCustomPaging 獲取或設定指示是否啟用自定義分頁的值。
AllowPaging 獲取或設定指示是否啟用分頁的值。
Count 獲取要從資料來源使用的項數。
CurrentPageIndex 獲取或設定當前頁的。
DataSource 獲取或設定資料來源。
DataSourceCount 獲取資料來源中的項數。
FirstIndexInPage 獲取頁中的第一個索引。
IsCustomPagingEnabled 獲取一個值,該值指示是否啟用自定義分頁。
IirstPage 獲取一個值,該值指示當前頁是否是首頁。
IsLastPage 獲取一個值,該值指示當前頁是否是最後一頁。
IsPagingEnabled 獲取一個值,該值指示是否啟用分頁。
IsReadOnly 獲取一個值,該值指示資料來源是否是隻讀的。
IsSynchronized 獲取一個值,該值指示是否同步對資料來源的訪問(執行緒)。
PageCount 獲取顯示資料來源中的所有項所需要的總頁數。
PageSize 獲取或設定要在單頁上顯示的項數。
VirtualCount 獲取或設定在使用自定義分頁時資料來源中的實際項數。
這些屬性是否和DataGrid的屬性很相似?沒錯,DataGrid控制元件就是使用PagedDataSource類來實現資料分頁顯示的 。下面舉個使用PagedDataSource類實現DataList和Repeater控制元件的分頁顯示的例子:
public void Page_Load( src,EventArgs e)
{
OleConnection objConn=new OleDbConnection(@"Provr=.Jet.OLEDB.4.0; Data Source=c: est.mdb");
OleDbDataAdapter objCommand=new OleDbDataAdapter(" * 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出當前頁的資料(實現方法請檢視有關文章)
mike from
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-962500/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在repeater、datalist控制元件中使用分頁功能 (轉)控制元件
- Repeater控制元件的分頁實現控制元件
- DataList控制元件也玩分頁-轉貼 (轉)控制元件
- ASP.NET中Repeater控制元件實現分頁功能ASP.NET控制元件
- 用javabean來實現MySQL的分頁顯示(轉)JavaBeanMySql
- AspNetPager與DataList結合實現分頁
- asp.net DataList控制元件分頁程式碼ASP.NET控制元件
- aspnetpager+repeater+oracle實現分頁功能Oracle
- 學php時寫的一個分頁顯示的類 (轉)PHP
- java web實現分頁顯示資料JavaWeb
- MyFaces整合sitemesh,以及使用MyFaces實現資料分頁顯示
- Repeater 的分頁 (摘自網路)
- 利用MySQL的一個特性實現MySQL查詢結果的分頁顯示(轉)MySql
- 利用ASP實現Oracle資料記錄的分頁顯示Oracle
- php分頁顯示PHP
- XML建立可排序、分頁的資料顯示頁面(轉)XML排序
- 實現小資料量和海量資料的通用分頁顯示儲存過程儲存過程
- 簡單的Repeater分頁程式碼
- 使用javascript+xml實現分頁(轉)JavaScriptXML
- java-用SSH框架實現將查詢的資訊分頁顯示Java框架
- iOS 類知乎”分頁”效果的實現?iOS
- SAP UI5 列表控制元件分頁顯示資料時,如何自定義分頁大小UI控制元件
- 看看JSP中怎樣實現分頁顯示(僱員管理)JS
- 實現分頁顯示資料[並按關鍵字查詢]
- 使用jupyter實現貓和狗的分類
- VS2005入門之Repeater、DataList
- Repeater控制元件實現編輯、更新、刪除操作控制元件
- asp.net分頁控制元件AspNetPager的使用,使用傳統分頁和儲存過程分頁ASP.NET控制元件儲存過程
- C#控制元件之Repeater控制元件使用C#控制元件
- 巢狀使用 datalist (轉)巢狀
- 使用儲存過程實現分頁列印 (轉)儲存過程
- asp.net mvc 中利用jquery datatables 實現資料分頁顯示ASP.NETMVCjQuery
- 【分類不顯示】後臺設定了分類,前臺怎麼不顯示?
- PB下使用TreeView控制元件實現多級分類檢索View控制元件
- 歌詞顯示控制元件的實現上——歌詞解析控制元件
- 如何實現網頁文字原格式顯示網頁
- 個性化的分頁實現 (轉)
- 程式介面多模式顯示的實現 (轉)模式