如果我需要分页支持,我应该使用ListView还是Repeater?
我可以使用带有ListView的DataPager控件,但不能使用Repeater。
那么最佳选择是什么?为什么?
答案 0 :(得分:3)
自.NET 1.1起以来,我没有比较各种数据可视化控件的性能。但是,如果您计划在一组非常大的数据上使用其中一个控件,那么需要注意一些事项。
中继器具有最简单,最简单的功能,并且不会向您没有明确指示的标记添加任何内容。如果你给它一个datareader作为它的数据源,那么它可能是最高性能的组合(虽然最缺乏功能)。
我想这并不能完全回答你的问题,但提出了更多问题。
但是......是否值得努力创建自定义分页,或使用listview / datapager组合的内置功能?有时,我认为值得定制。
有一点需要担心的是,DataPager控件在页面之间导航时会使用回发。
IMO,回发是一种处理分页的糟糕方式。原因如下:
1。)用户无法在背面和背面的页面之间导航。在浏览器历史记录中转发按钮,而不会收到有关重新提交表单数据的恼人消息。
2。)搜索引擎无法单独索引每个结果页面,因为它们都使用相同的URL。
至少使用自定义解决方案,您可以通过对每个页面使用查询字符串来解决所有问题。
我在回答this question时谈到了其中一些相同的问题。
答案 1 :(得分:1)
imho ListView通常更好,因为您可以更好地自定义它。
答案 2 :(得分:1)
您还可以使用PagedDataSource
在Repeater中进行分页答案 3 :(得分:1)
我认为这篇文章对两者有很好的比较......
http://www.singingeels.com/Articles/The_ListView_Dominates_The_Repeater.aspx
这是ListView的分页文章......
http://www.codedigest.com/Articles/ASPNET/100_Paging_in_ListView_in_ASPNet_35.aspx
答案 4 :(得分:1)
您可以使用ListView或Repeater成功 - 我认为重要的问题是您将如何实现分页?您的来源中有多少条信息记录?
将DataPager打到ListView上,设置几个属性并进行分页...以及每个页面实际查询所有记录的捕获量是非常容易的,其中大部分得到被DataPager抛出。这在很多情况下可能都很好,但是如果你有很多记录,它可能不合适。
DataPager支持自定义分页(see this),您自己进行脏工作(设置SQL语句/ sprocs实际上一次只返回结果的“页面”),但是这是一些工作。此时,除了在转发器上渲染/计算自己的分页控件/链接之外,使用Repeater并不复杂。
PagedDataSource我不太熟悉,但我不相信你可以实现自定义分页,所以它可能就像默认的DataPager(只有它也可以与DataReader一起使用)。
总而言之,ListView或Repeater都可以工作,而且非常相似。具有默认DataPager的ListView将与具有PagedDataSource的Repeater相媲美,并且具有自定义分页代码的ListView与具有滚动您自己的分页代码的Repeater相当。
答案 5 :(得分:0)
ListView被设计为Repeater的.Net 3.5替代品。如果您正在编写新代码,请使用ListView。
C#书中的Apress Pro ASP.Net对此有所了解。