2011-02-03 103 views
1

有沒有簡單的方法來做雙重尋呼(即客戶端和服務器端)?jqGrid雙重尋呼(客戶端和服務器端)

現在我正在使用固定的'rowTotal'(with rowTotal> rowNum)使用客戶端分頁(loadonce = true,它工作得非常快btw!)。問題是rowTotal < Total-Records-in-DB,所以我只顯示數據庫中的第一個rowTotal記錄,並在客戶端通過它進行分頁。從數據庫加載所有記錄不是一個選項(這就是爲什麼使用分頁網格; p)。另一方面,只進行服務器端分頁會導致性能較差(這就是爲什麼您使用AJAX組件; p)。所以我認爲一個綜合的方法將達到兩全其美。

理想情況下,這將自動執行。這是:分頁器應該顯示第一行Total/rowNum結果作爲內存中加載的N個頁面中的第一個(客戶端)。當跳轉到第N + 1頁時,它應該打到後端並檢索下一個rowTotal結果。我現在看到的問題是(我猜)頁面的數量是根據結果集的大小除以rowNum而不是數據庫上的記錄來計算的,加上大多數尋呼機屬性是不可變的:

這有任何意義嗎?有一種簡單的方法來做到這一點不侵入的jqGrid的代碼?

最好的問候!

回答

3

你不是誰的需求的第一人,看到this question例如,行爲,你問有不同的缺點,例如,你將無法使用數據排序,例如,如果用戶點擊列標題,只有l ocal數據將被排序,這將是錯誤的。

在我的expirience服務器端分頁每個AJAX工作非常快。所有這些都取決於服務器端的實現,但是爲了實現最佳實現,服務器端會緩存相應查詢的結果,並從SQL Server緩存中獲取下一個/上一個頁面。

我建議您使用純服務器端分頁,並在需要時進行一些性能調整。

+0

+1第二段和第三段。 (@NicoDB - 純服務器端分頁對我來說一直很好。) – JasCav 2011-02-03 14:37:35