Web应用程序中的高效分页

我是Web应用程序中的分页新手。 我在网上搜索了很多关于网页分页的教程(在VS中创建新网站)。 我不能使用当前启用分页的方法,这可以很容易地完成,因为它不高效并从数据库中检索整个数据表。

默认分页 – 只需检查数据Web控件的智能标记中的“启用分页”选项即可实现。 但是,每当查看数据页时,ObjectDataSource都会检索所有记录,即使页面中只显示了它们的一部分。

自定义分页 – 通过仅检索数据库中必须为用户请求的特定数据页面显示的那些记录来提高默认分页的性能。 但是,自定义分页比默认分页需要更多的工作量。

我正在寻找Web应用程序的自定义分页,希望你们能帮助我。 我发现2个链接,我认为可能是自定义分页,但我不确定代码的哪一部分这么说,所以如果你能告诉我哪部分代码实际上使其高效,那将是很好的谢谢!

这2个链接是http://www.codeproject.com/Articles/170921/MvcContrib-Grid-Paging-and-Searching-in-ASP-NET-MV和http://blogs.msdn.com/b/codefx/存档/ 2009/09/07 /如何做-实施-插入-编辑-删除-分页和排序函数function于一个-ASP净gridview的-control.aspx?CommentPosted =真#commentmessage

再次感谢!

我不相信你的任何一个链接演示了高效的分页

链接1 – LINQ示例为了使其更加强大,我希望能够看到表单中的内容

var myDataSource = data.Select(x => x.Parameter = "input").Skip(1).Take(10); 

原则是skip和take方法只检索您想要的数据页面

链接2 – SQL示例

再次不相信 – 我希望在SQL中看到一些使用ROW_OVER()或SQL的其他证据只会带回你想要的数据页面。 此链接提供了一个使用ROW_OVER与SQL Server 2005的示例(2008可能已经改进 – 我不知道TBH – 其他人可能和我会感兴趣)。

通常

我有ASP.Net 3.5或更高版本我会使用LINQ示例 – 它比在SQL中尝试使用它要简单得多

此链接提供了一个更好的示例,使用LINQ和Take和Skip运算符来使用ListView进行高效分页。 它还解决了必须获取记录总数以显示常见要求的页数的问题。

此外 – 这个问题提供了一些有效分页的非常好的例子,所以我建议你阅读。

LINQ注意

正如下面的评论者所指出的那样 – 您需要确保在数据库上执行跳过和执行而不是正在实现的整个数据集,带回并在客户端上执行跳过和执行。 Profiler是你的朋友。 还值得知道哪些运营商实现了查询并将其发送到数据库。

 var myDataSource = data.Select(x => x.Parameter = "input").Skip(1).Take(10); 

上面可能还行

 var myDataSource = data.Select(x => x.Parameter = "input") .ToList().Skip(1).Take(10); 

哎呀没有好处。 在Skip和Take完成它的工作之前,ToList()方法将导致SQL被触发到数据库。