2011-04-11 18 views
1

我有一個數據表與一個大的結果集。
This DataTable用於生成PDF中的多個頁面(DataTable中的每行一個)。


經過一定數量的行後,PDF生成時間過長,所以我想提供一個超鏈接列表,供最終用戶爲每組行(
)生成單獨的PDF,即設置1(行0-90) ,第2組(第91-181行)等。我如何訪問數據錶行的單獨頁面

我希望能夠在生成該組行的PDF時過濾原始DataTable。我知道GridView提供了頁面調度功能,但我不想將數據不必要地放到gridview中。

我所希望的是某種RowFilter,它在那裏我可以說:

​​

有誰知道數據表(使用.net 3.5)的這樣的功能呢?
或者任何人都可以提供另一種解決方案? 謝謝

回答

2

試試這個 - 使用AsEnumerable extension method,然後使用LINQ來查詢你需要的行。

dataTable.AsEnumerable().Take(90); 

第2頁:

dataTable.AsEnumerable().Skip(90).Take(90); 
+0

哦,這很酷,這是否使原來的DataTable的副本,還是隻是過濾源數據表? (我想要後者)。 – funkymushroom 2011-04-11 15:33:37

+0

只是過濾器 - 返回的IEnumerable 包含指向實際數據的指針。來自MSDN:「由AsEnumerable方法返回的可枚舉對象永久綁定到產生它的DataTable。多次調用AsEnumerable方法將返回多個獨立的可查詢對象,這些對象都綁定到源DataTable。」 – BrandonZeider 2011-04-11 15:36:25

+0

謝謝,這正是我所需要的。 – funkymushroom 2011-04-11 15:49:29

相關問題