ASP.NET 2.0在SQL Server 2005上自訂分頁

來源:互聯網
上載者:User

出處:http://aspnet.4guysfromrolla.com/demos/printPage.aspx?path=/articles/031506-1.aspx

介紹

web開發中普遍會用頁面來顯示資料。比起整頁顯示一張報表或者一張資料表的資料給使用者,開發人員經常用到的是分頁顯示,每頁只顯示部分資料,用翻頁來控制。在ASPV.NET 1.X裡,DataGrid控制項使翻頁顯示變得簡單—只需要把屬性AllowPaging設定為”true”,並在PageIndexChanged事件中加少量幾行的代碼就可以實現!ASP.NET 2.0中的控制項GridView使事件也簡單化了,只需要在GridView的智能面板裡把“允許分頁”選中,不需要一行代碼就可以實現。

當然了,生活中沒有任何事是容易就能做好的。你需要權衡選中一個複選框就能實現的分頁方案(或者用DataGrid,寫幾行代碼的實現方案)的效能。如果不選中分頁,DataGrid和GridView使用預設分頁,簡單的把所有資料從頭到尾地顯示在一張網頁上。當資料量小時,幾十一百或類似的數量時,效率效能不會太明顯。但是,如果你想像這樣用預設的分頁方法顯示上千萬、以至幾十萬的書時就不可行了。

取代預設分頁的方法就是自訂分頁,你要做的工作就是用代碼來判斷並把正確的分頁資料取出,可能會費點事,但對於應付如此龐大的資料量來說,絕對值得。我在《ASP.NET Web資料控制項快速開發》中討論了如何在ASP.NET 1.X中實現自訂分頁,這篇文章,我們來看在ASP.NET 2.0中如何利用SQL Server 2005的新特性 ROW_NUMBER()來實現自訂分頁。(更多關於SQL SERVER的新特性說明,請看利用Microsoft SQL SERVER 2005返回列值。)

繼續讀下去來學習更多吧!

預設分頁與自訂分頁對比

在ASP.NET 2.0裡GridView(或ASP.NET 1.X裡的DataGrid)提供兩種分頁模型:預設分頁與自訂分頁。這兩種模型在效能與易用性上提供了折中的方案。SqlDataSource控制項使用預設分頁(儘管你可以在自訂分頁了使用它);ObjectDataSource預設使用預設分頁模型,不過有個簡單的配置可以讓它使用自訂分頁。心裡要時刻記得GridView僅僅是顯示資料;它才是GridView負責從資料庫中檢索資料的資料來源控制項。

使用預設分頁,每次開啟新頁顯並顯示時,都要從GridView的資料來源控制項中獲得所有資料。一旦全部的資料返回,GridView就把所有的資料全顯示在頁面上,於是使用者看到一張頁面上顯示了如此多的資料。關鍵要理解這裡,無論何時當使用者訪問第一頁或翻到其他頁時,所有的資料都會被重新載入一遍。

舉個例子,比如說你在一家電子商務公司上班,你想讓使用者分頁查看你們公司所銷售的150中產品。並且,你想每頁只顯示10條資料。現在,當一個使用者訪問網頁時,所有150條資料都被資料來源空間返回過來。但GridView只顯示第一個10條資料(產品1到產品10)。再想象一下,當這個使用者翻看第二頁的資料時,這會引發一個回傳的事件,而且在這個時候GridView又會從資料來源控制項中獲得所有的150條記錄,但這時只需要顯示第二個10條(產品11到產品20)。

緩衝與SqlDataSource
SqlDataCourse在對屬性EnableCaching做簡單設定後允許資料集快取資料。對於一個緩衝的資料集,翻頁時不需要再訪問資料庫,從分頁開始到結束都緩衝在記憶體裡。然而,初始化頁面時相同的問題發生了—所有的資料必須載入到緩衝的資料集裡去。此外,這樣的話你還必須擔憂那些到期的資料(雖然你使用了SQL cache dependencies ,但在這裡已經沒意義了)。

在我不太科學的測試下,發現快取資料和自訂分頁的速度差2倍以上……儘管,你看到緩衝方式接近不緩衝的方式。(但它始終沒有超過自訂分頁!)

更多關於SqlDataSource的資料集緩衝,請看利用SqlDataSource快取資料.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.