如何使用中继器控件进行分页? [关闭]
Posted
技术标签:
【中文标题】如何使用中继器控件进行分页? [关闭]【英文标题】:How to paging using Repeater Control? [closed] 【发布时间】:2013-08-31 12:55:20 【问题描述】:你能告诉我如何在 WebForms 应用程序中为中继器控件使用分页吗?我需要一个用于后页、下一页的链接以及每页的编号,例如。
<back>1,2,3,4....n<next>.
最好的方法是什么?我不想使用PagedDataSource
,因为我的DB
中有很多数据,所以我想为每个页面调用我的DB
,而不是在第一次选择时选择所有项目。
【问题讨论】:
【参考方案1】:由于您不想使用 PagedDataSource,我建议您使用存储过程进行分页。您可以将 pageIndex、pageSize、sortBy、sortDirection(升序/降序)等分页详细信息传递给您的存储过程,然后您将只返回当前页面所需的数据,您可以使用这些数据来提供您的转发器DataTable
或List<MyDataClass>
的形式。
对于分页控件,您可以使用下拉控件,您可以在存储过程中返回总行数(在应用分页之前),以便您可以使用数字1,2,3...
填充下拉列表等等。可能您可能需要将当前的pageIndex
保存在hidden field 中,单击下拉列表中的btnBack
或btnNext
或OnSelectedIndexChanged 事件后将更新该OnSelectedIndexChanged。
我只是在描述我的想法的大致情况,我将参考以下链接获取可用于入门的代码 sn-ps:
Custom Paging Stored Procedure How to call stored Procedure in entity framework ? 如果您使用的是实体框架。 Calling Stored procedures in ADO.NET 如果您使用的是 ADO.NET。希望这些信息足以让您入门。也可能有一些更好的编程实践,因为我没有那么有经验,这是我可以推荐的。如果有人有更好的建议,请在下方评论。
安东
【讨论】:
很好,我还要补充一点,如果使用 EF,你总是可以用 Skip() 和 Take() 来计算 感谢您的回复,我看到了您发布的第一个链接,但不是很清楚,您能否将其他有关使用存储过程和 C# 示例代码进行分页的链接链接我?我找不到类似的东西。 @ezechiele2517 看看这个帖子,可能是存储过程here简单一点。还有here 我不想发布的广泛解决方案,因为它可能会让您感到困惑。 C# 部分应该在您调用存储过程时(就像您使用实体框架的方法一样)并可能将结果作为 DataTable 取回。 这也可能有帮助 - How to execute a stored procedure within C# program 我也找到了这个解决方案:aspsnippets.com/Articles/… 但我需要自定义分页器以显示类似的内容:以上是关于如何使用中继器控件进行分页? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章