当前位置:主页 > 行业新闻 >

ASP.NET 2.0在SQL Server 2005上自定义分页

发布时间:19-12-06 阅读:214

出处:http://aspnet.4guysfromrolla.com/demos/printPage.aspx?path=/articles/031506-1.aspx

先容

web开拓中普遍会用页面来显示数据。比起整页显示一张报表或者一张数据表的数据给用户,开拓者常常用到的是分页显示,每页只显示部分数据,用翻页来节制。在ASPV.NET 1.X里,DataGrid控件使翻页显示变得简单—只必要把属性AllowPaging设置为”true”,并在PageIndexChanged事故中加少量几行的代码就可以实现!ASP.NET 2.0中的控件GridView使事故也简单化了,只必要在GridView的智能面板里把“容许分页”选中,不必要一行代码就可以实现。

当然了,生活中没有任何事是轻易就能做好的。你必要权衡选中一个复选框就能实现的分页规划(或者用DataGrid,写几行代码的实现规划)的机能。假如不选平分页,DataGrid和GridView应用默认分页,简单的把所稀有据从头到尾地显示在一张网页上。当数据量小时,几十一百或类似的数量时,效任机能不会太显着。然则,假如你想像这样用默认的分页措施显示上切切、以至几十万的书时就弗成行了。

取代默认分页的措施便是自定义分页,你要做的事情便是用代码来判断并把精确的分页数据掏出,可能会费点事,但对付敷衍如斯宏大年夜的数据量来说,绝对值得。我在《ASP.NET Web数据控件快速开拓》中评论争论了若何在ASP.NET 1.X中实现自定义分页,这篇文章,我们来看在ASP.NET 2.0中若何使用SQL Server 2005的新特点 ROW_NUMBER()来实现自定义分页。(更多关于SQL SERVER的新特点阐明,请看使用Microsoft SQL SERVER 2005返回列值。)

继承读下去来进修更多吧!

默认分页与自定义分页比较

在ASP.NET 2.0里GridView(或ASP.NET 1.X里的DataGrid)供给两种分页模型:默认分页与自定义分页。这两种模型在机能与易用性上供给了折中的规划。SqlDataSource控件应用默认分页(只管你可以在自定义分页了应用它);ObjectDataSource默认应用默认分页模型,不过有个简单的设置设置设备摆设摆设可以让它应用自定义分页。心里要时候记得GridView仅仅是显示数据;它才是GridView认真从数据库中检索数据的数据源控件。

应用默认分页,每次打开新页显并显示时,都要从GridView的数据源控件中得到所稀有据。一旦整个的数据返回,GridView就把所有的数据全显示在页面上,于是用户看到一张页面上显示了如斯多的数据。关键要理解这里,无论何时当用户造访第一页或翻到其他页时,所有的数据都邑被从新加载一遍。

举个例子,比如说你在一家电子商务公司上班,你想让用户分页查看你们公司所贩卖的150中产品。并且,你想每页只显示10条数据。现在,当一个用户造访网页时,所有150条数据都被数据源空间返回过来。但GridView只显示第一个10条数据(产品1到产品10)。再想象一下,当这个用户翻看第二页的数据时,这会激发一个回发的事故,而且在这个时刻GridView又会从数据源控件中得到所有的150笔记录,但这时只必要显示第二个10条(产品11到产品20)。

缓存与SqlDataSource

SqlDataCourse在对属性EnableCaching做简单设置后容许数据集缓存数据。对付一个缓存的数据集,翻页时不必要再造访数据库,从分页开始到停止都缓存在内存里。然而,初始化页面时相同的问题发生了—所有的数据必须载入到缓存的数据集里去。此外,这样的话你还必须担忧那些过时的数据(虽然你应用了SQL cache dependencies ,但在这里已经没意义了)。

在我不太科学的测试下,发明缓存数据和自定义分页的速率差2倍以上……只管,你看到缓存要领靠近不缓存的要领。(但它始终没有跨越自定义分页!)

更多关于SqlDataSource的数据集缓存,请看使用SqlDataSource缓存数据.



上一篇:UML应用的三重境界
下一篇:没有了