2011-04-08 51 views
0

我使用LINQ to SQL來搜索相當大的數據庫,並使用listview和datapager進行分頁。我知道Skip()和Take()方法,並讓這些方法正常工作。但是,我無法使用數據填充器的結果數,因爲它們將始終是Take()方法中確定的頁面大小。使用Linq-to-sql,Listview和Datapager進行分頁

例如:

var result = (from c in db.Customers 
       where c.FirstName == "JimBob" 
       select c).Skip(0).Take(10); 

這個查詢將始終返回10分或更少的結果,即使有1000個JimBobs。因此,DataPager會一直認爲只有一個頁面,並且用戶無法瀏覽整個結果集。

如何欺騙數據引擎顯示1000的pagecount,但一次綁定10個項目?我不想使用objectdatasource。

謝謝。

回答

1

運行第二個查詢:

var count = Customers.Where(c => c.FirstName == "JimBob").Count(); 
+0

我明白了。但我在哪裏使用這個計數。我如何更新計數爲1000而不是10的數據手冊。 – guest 2011-04-08 14:10:03

+0

請幫助...自從我一直堅持這一點,已經過了2天。我錯過了很簡單的事情嗎? – guest 2011-04-08 16:50:55

+0

我從來沒有使用數據引擎...如果它應該爲你做分頁,你是否應該用skip&take限制查詢?還是它處理這個問題呢? – taylonr 2011-04-08 18:11:46

0

嘗試使用這個..

var result = (from c in db.Customers 
      where c.FirstName == "JimBob" 
      select c).Skip((PAGENUMBER-1 * 10)).Take(10); 

看看這裏的博客帖子上簡單LINQ Paging

希望它能幫助.. :)