2013-02-01 30 views
0

我試圖用LINQ進行自定義分頁。一切安好。但是最後一頁結果是上一頁輸出值。我知道因爲這個,在LINQ中用C自定義分頁#

int skip = Math.Max(AC.rows * (AC.page - 1), 0); // Doing page -1. 

但我需要知道如何使純粹的邏輯與分頁工作。有人指導我爲此做正確的邏輯。

代碼

var selectpending = CsA.CsAutoCompletes(AC, searchTerm); 
var Tot = selectpending.Count(); 
int skip = Math.Max(AC.rows * (AC.page - 1), 0); 
int totpages = Convert.ToInt32(Tot/AC.rows); 

um = selectpending.Skip(skip).Take(AC.rows).ToList(); 
return Json(new 
{ 
    rows = um, 
    records = Tot, 
    page = AC.page, 
    total = totpages 
} 
, JsonRequestBehavior.AllowGet); 
+0

? –

+0

AC.page是基於一個的。當第一次查詢AC.page爲1時 – UniqueChar

+0

在這種情況下,您的評論中指出'skip'在任何時候都不可能是-1。你確定它是基於一個? –

回答

2

Tot可以不直接由AC.Rows整除,所以你是AC.page`零或基於一個'應該這樣做int totpages = (int)Math.Ceiling(((double)Tot)/ AC.Rows);

+0

是的。它的工作是我期望的。謝謝Ameen。 – UniqueChar

+0

不客氣! :) – Ameen