程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET 2.0數據教程之四十五:DataList和Repeater數據排序(二)

ASP.NET 2.0數據教程之四十五:DataList和Repeater數據排序(二)

編輯:關於ASP.NET

返回“ASP.NET 2.0數據教程目錄”

第五步: 為使用默認分頁的DataList添加排序的支持

在前面一章裡我 們學習了如何使用DataList的默認分頁。現在我們來擴展它,讓它可以對分頁的 數據進行排序。打開PagingSortingDataListRepeater文件夾裡的 SortingWithDefaultPaging.aspx和Paging.aspx 頁。在Paging.aspx 頁裡查看源 文件。將圖8裡選擇的文本復制下來,然後粘貼到 SortingWithDefaultPaging.aspx 頁裡的<asp:Content> 標簽內。

圖 8: 復制粘貼代碼

然後將Paging.aspx頁後台代碼裡的屬性和 方法也粘貼到SortingWithDefaultPaging.aspx頁後台代碼裡。現在浏覽 SortingWithDefaultPaging.aspx頁,它現在應該有和Paging.aspx頁一樣的外觀 和功能。

在ProductsBLL 裡添加默認的分頁和排序方法

前面一章 裡我們在ProductsBLL類裡創建了一個GetProductsAsPagedDataSource (pageIndex, pageSize)方法,它返回一個PagedDataSource對象。這個對象通過 BLL的GetProducts()方法獲取所有的product,然而綁定到DataList的只是那些和 輸入參數pageIndex 和 pageSize 相關的記錄。

本章前面我們已經通過在 ObjectDataSource的 Selecting event handler裡指定sort expression來添加了 排序功能。當ObjectDataSource返回可排序對象時這個方法運轉的很好,比如 GetProducts()方法返回的ProductsDataTable。然而 GetProductsAsPagedDataSource方法返回的PagedDataSource對象並不支持對它內 部數據的排序,因此我們需要在將數據放入PagedDataSource前對GetProducts() 方法返回的記錄進行排序。

在ProductsBLL類裡建一個 GetProductsSortedAsPagedDataSource(sortExpression, pageIndex, pageSize) 方法。指定GetProducts() 方法返回的ProductsDataTable的default DataTableView的排序屬性。

C#

[System.ComponentModel.DataObjectMethodAttribute
   (System.ComponentModel.DataObjectMethodType.Select, false)]
public PagedDataSource GetProductsSortedAsPagedDataSource
  (string sortExpression, int pageIndex, int pageSize)
{
  // Get ALL of the products
  Northwind.ProductsDataTable products = GetProducts();

  // Sort the products
   products.DefaultView.Sort = sortExpression;

  // Limit the results through a PagedDataSource
  PagedDataSource pagedData = new PagedDataSource();
  pagedData.DataSource = products.DefaultView;
  pagedData.AllowPaging = true;
   pagedData.CurrentPageIndex = pageIndex;
  pagedData.PageSize = pageSize;

  return pagedData;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved