2010-12-01 88 views
1

我有一個數據網格顯示從存儲過程返回的數據。這工作正常。問題是我想要分類。我知道網格中有排序功能,但是,我不想回到服務器並獲得一組新的數據。我想要做的只是重新排序已經顯示的數據。asp.net datagrid排序

任何人有任何想法如何做到這一點?

謝謝!

UPDATE

基本上,我不能沒有找到一個簡單的解決這個問題。我嘗試更新我的dataGrid到一個gridView控件,甚至(對於我的特定問題)是困難的。我最終沒有做所有的改變,只是添加了另一個只包含我想要的數據的網格。

如果任何人有這樣的問題,我會建議把它從數據網格中,並寫在jQuery中。我可以在15分鐘內寫出一張表格,其中包含我想要的數據(並且完全可以使用下面提到的插件進行排序),而我花費的時間則是將一個方形釘塞入圓孔。

回答

1

你可以做的一件事是將當前結果集保存到用戶會話中,前提是它不是那麼大。然後,您可以在DataGrid的排序功能中使用該構建,而無需處理到數據庫的往返行程。

您將返回到服務器,但往往到Web服務器和後面的旅程比涉及數據庫的旅程要快得多。

1

這聽起來像你想要做的是在客戶端進行排序(內置的網格排序是服務器端,這聽起來像你不想往返)。如果您使用的是jQuery,則有一些非常簡單的插件可以處理客戶端上的排序操作。

jQuery(".gv").tablesorter(); 

其中GV是用於我的所有表CSS類(的GridView控件在ASP.net應用程序):例如,用tablesorter插件(http://tablesorter.com/docs/),你可以用一行代碼做到這一點。

你需要確保你的DataGrid是撕心裂肺一個<thead><tbody>,請參閱相關的問題爲JavaScript的方式來添加這些,或者你可以從PreRender事件代碼隱藏做到這一點:ASP.NET 2.0 - DataGrid with tbody/thead

+0

你可以使用這個tablesorter插件與datagrids?或者只是gridviews?我當前的項目(遺留)使用數據網格(最初編寫爲1.1)。有沒有辦法與這些插件一起使用? – webdad3 2010-12-01 18:51:42