如何将分页应用于数据集?

3
我该如何将分页应用于数据集?我有一个方法,可以从数据集动态构建表格。从获取数据集的数据库查询不是问题,但遍历数据行速度较慢。
为了提高加载包含大量数据行的页面的性能,我想要应用分页功能。
一个好的功能是允许用户设置每页显示多少行的页面大小。

你可以查看DataPager控件:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.datapager.aspx,或者使用存储过程进行分页。你甚至可以在页面上维护一个页码、起始索引和每页数据量,并使用数据子集填充你的数据集。 - Joseph Yaduvanshi
3个回答

11

如果您的数据是单个DataTable,则可以使用AsEnumerable()扩展方法。它会将数据作为一个IEnumerable集合返回。然后,您可以使用LINQ扩展方法.Skip()和.Take()。

IEnumerable<DataRow> MyDataPage = MyDataTable.AsEnumerable().Skip(100).Take(10);

上面的代码将为您提供MyDataTable的第101到110行,它将是一个IEnumerable集合,您可以像数据表一样绑定它。如果您需要它是实际的DataTable,只需调用CopyToDataTable()即可:

DataTable NewDT = MyDataPage.CopyToDataTable();

更详细的信息在此处可用。


0

是的,但在我的公司中,我们不使用诸如gridview、listview、dataview等web控件。我们通常在代码后端手动和动态地构建表格。 - Jonas

0

Linq是最佳选择。

在SQL Server 2005中,ROW_NUMBER()也是一个选项。


在SQL Server 2008中也可以实现这个吗? - Jonas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接