我們開發了Asp.net的web應用程序。我們使用asp.net gridview來顯示記錄和編輯。網格加載速度太慢,沒有分頁
這裏我們有5000行和23列在單個網格。綁定需要很長時間。我們的客戶拒絕分頁選項。如何使綁定速度更快,5000到7000條記錄。
請指教。
感謝
Mayil.M
我們開發了Asp.net的web應用程序。我們使用asp.net gridview來顯示記錄和編輯。網格加載速度太慢,沒有分頁
這裏我們有5000行和23列在單個網格。綁定需要很長時間。我們的客戶拒絕分頁選項。如何使綁定速度更快,5000到7000條記錄。
請指教。
感謝
Mayil.M
哪裏是你的數據從何而來?它是數據庫還是其他外部資源?
您可以使用緩存,因此您不會從外部資源加載整個數據集,而是從內存加載。請注意,如果您的數據經常更改,此解決方案將無法使用。
另一種方法是使用某種部分加載機制,例如使用Ajax。這將需要改變的方法,因爲我不確定網格視圖控件是否支持這一點。您將不得不創建自定義控件,然後對較小的數據塊(例如200條記錄)進行連續請求(例如使用Ajax)並顯示它們。最終你會有完整的設置,但數據將更快。
最後,您可以將兩者結合起來,使其更快。
你應該實現你自己的分頁機制。問題是DataBind檢索所有7000條記錄(儘管只有20條被顯示/渲染)。例如,創建一個只讀取所選記錄範圍的存儲過程(如果您在第2頁上,只需要顯示記錄ID> 20和< = 40--考慮到您的頁面大小爲20)。使用SQL Server CTE獲取行號(在SQL Server端)和BETWEEN等功能。這個存儲過程只會返回你真正需要的那些記錄。然後更改您的網格視圖以從此存儲過程獲取數據。
正確!但_client拒絕分頁選項_(在問題中已經提到)。 – Prash
我不確定我是否遵循。您不會在單個頁面上顯示全部7000條記錄,因此您需要分頁機制。如果用戶不使用分頁,那麼很好,但重要的是不加載所有7000條記錄,這就是我上面寫的。這是關鍵。你需要的數據源已經只有20個記錄。 –
您可以像滾動Facebook牆一樣加載數據。
使用多線程。它將時間減少到75%。 – Sasidharan