萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> asp.net編程 >> Repeater控件與PagedDataSource結合實現分頁功能

Repeater控件與PagedDataSource結合實現分頁功能

 Repeater控件與PagedDataSource相結合實現其分頁功能,如果控件開發人員需對自定義數據綁定控件提供分頁支持,即可使用此類

本文講解Repeater控件與PagedDataSource相結合實現其分頁功能。PagedDataSource 類封裝那些允許數據源控件(如 DataGrid、GridView)執行分頁操作的屬性。如果控件開發人員需對自定義數據綁定控件提供分頁支持,即可使用此類。    PagedDataSource 類的部分公共屬性:    AllowCustomPaging // 獲取或設置指示是否啟用自定義分頁的值。 AllowPaging // 獲取或設置指示是否啟用分頁的值。 Count // 獲取要從數據源使用的項數。 CurrentPageIndex // 獲取或設置當前頁的索引。 DataSource // 獲取或設置數據源。 DataSourceCount // 獲取數據源中的項數。 FirstIndexInPage // 獲取頁中的第一個索引。 IsCustomPagingEnabled // 獲取一個值,該值指示是否啟用自定義分頁。 IsFirstPage // 獲取一個值,該值指示當前頁是否是首頁。 IsLastPage // 獲取一個值,該值指示當前頁是否是最後一頁。 IsPagingEnabled // 獲取一個值,該值指示是否啟用分頁。 IsReadOnly // 獲取一個值,該值指示數據源是否是只讀的。 IsSynchronized // 獲取一個值,該值指示是否同步對數據源的訪問(線程安全)。 PageCount // 獲取顯示數據源中的所有項所需要的總頁數。 PageSize // 獲取或設置要在單頁上顯示的項數。 VirtualCount // 獲取或設置在使用自定義分頁時數據源中的實際項數。  下面是PagedDataSource類實現Repeater控件的分頁顯示例子,如圖:     代碼如下: protected void Page_Load(object sender, EventArgs e)  {  if (!Page.IsPostBack)  {  int pageIndex = 1;  try  {  pageIndex = Convert.ToInt32(Request.QueryString["Page"]);  if (pageIndex <= 0) pageIndex = 1;  }  catch  {  pageIndex = 1;  }  DataTable dt = GetDocumentTable();  PagedDataSource pds = new PagedDataSource();  pds.DataSource = dt.DefaultView; // 設置數據源  pds.AllowPaging = true; // 設置指示是否啟用分頁的值  pds.PageSize = 5; // 設置要在每頁顯示的數量  pds.CurrentPageIndex = pageIndex - 1; // 設置當前頁的索引。  rptDocumentList.DataSource = pds;  rptDocumentList.DataBind();  ltlPageBar.Text = GetPageBar(pds);  }  }  // 分頁條  private string GetPageBar(PagedDataSource pds)  {  string pageBar = string.Empty;  int currentPageIndex = pds.CurrentPageIndex + 1;  if (currentPageIndex == 1)  {  pageBar += "首頁";  }  else  {  pageBar += " + Request.CurrentExecutionFilePath + "?Page=1">首頁";  }  if ((currentPageIndex - 1) < 1)  {  pageBar += "上一頁";  }  else  {  pageBar += " + Request.CurrentExecutionFilePath + "?Page=" + (currentPageIndex - 1) + "">上一頁";  }  if ((currentPageIndex + 1) > pds.PageCount)  {  pageBar += "下一頁";  }  else  {  pageBar += " + Request.CurrentExecutionFilePath + "?Page=" + (currentPageIndex + 1) + "">下一頁";  }  if (currentPageIndex == pds.PageCount)  {  pageBar += "末頁";  }  else  {  pageBar += " + Request.CurrentExecutionFilePath + "?Page=" + pds.PageCount + "">末頁";  }  return pageBar;  }  // 創建測試表  DataTable GetDocumentTable()  {  DataTable dt = new DataTable();  dt.Columns.Add("DocumentId", typeof(int));  dt.Columns.Add("Title", typeof(string));  for (int i = 1; i <= 30; i++)  {  DataRow row = dt.NewRow();  row["DocumentId"] = i;  row["Title"] = "文檔標題 " + i + "";  dt.Rows.Add(row);  }  return dt;  }   
copyright © 萬盛學電腦網 all rights reserved