2012-06-20 113 views
0

我正在創建MVC3網站並使用分頁(使用PagedList;)來顯示一堆數據。我有一個存儲過程,每次調用的行數超過2000行。Jquery.ajax檢索數據庫中的數據

我已經使用AJAX與JQUERY檢索數據($.ajax在jquery中調用)並在控制器中對檢索到的數據進行分頁。所以我從存儲過程中取回2000個數據行,並在控制器上對它們進行分頁,並顯示10行數據。但是當我點擊「Next」/「previous」鏈接時,控制器再次調用相同的存儲過程,並檢索另外2000行,並在控制器中根據pagenumber顯示數據。所以每次它讀取2000行。

我沒有在這裏使用任何包裝類。直接從控制器調用存儲過程。

謝謝。

+0

我在這裏使用數據庫的第一種方法 – user1451999

回答

0

您將不得不修改存儲過程,以便將當前頁碼和記錄數作爲參數返回。這樣,分頁將直接在SQL Server上完成,如果您關心效率,這是唯一正確的分頁方式,因爲它避免了從數據庫獲取所有記錄並在客戶端上進行分片。

+0

我想到了這種方法,但那麼AJAX的使用是什麼?我認爲AJAX不會刷新頁面並提高性能。因此,AJAX不會提高獲取數據的性能。有沒有什麼方法可以讓我暫時存儲這些數據並在控制器中播放,以便使用ajax獲取下一組數據? – user1451999

+0

這樣做意味着控制器是「有狀態的」,這是一般你想避免的事情。 Ajax沒有什麼魔力,除了允許在保持接口(希望)響應的同時對服務器進行異步調用。你將需要圍繞你的分頁代碼進行開發,並且答案中的SQL服務器解決方案是正確的。 – Tallmaris

+0

好的,非常感謝你! – user1451999