如何使用中继器控件进行分页? [关闭]

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(升序/降序)等分页详细信息传递给您的存储过程,然后您将只返回当前页面所需的数据,您可以使用这些数据来提供您的转发器DataTableList&lt;MyDataClass&gt;的形式。

对于分页控件,您可以使用下拉控件,您可以在存储过程中返回总行数(在应用分页之前),以便您可以使用数字1,2,3... 填充下拉列表等等。可能您可能需要将当前的pageIndex 保存在hidden field 中,单击下拉列表中的btnBackbtnNext 或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/… 但我需要自定义分页器以显示类似的内容:1,2,3,...(带点) 可以你帮我做吗?

以上是关于如何使用中继器控件进行分页? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 .NET 中继器控件中使用 JQuery 日期控件

如何从两个不同的中继连接中删除共享节点?

使用 Mongoose 进行基于 GraphQL 游标的分页 [关闭]

中继器中的链接第一次仅在更新面板控件内工作

更新面板中 Asp 中继器的页面回发问题

您如何为 ORM 的分页定义中继连接?