【发布时间】:2010-12-07 19:52:09
【问题描述】:
我想通过 JQuery 在Repeater 中实现分页。 可能吗?如果是,那么我如何实现这一目标?
【问题讨论】:
-
有人可以尝试解释如何实现这一点的概念,而不是仅仅指向一个插件吗?
标签: asp.net jquery pagination repeater
我想通过 JQuery 在Repeater 中实现分页。 可能吗?如果是,那么我如何实现这一目标?
【问题讨论】:
标签: asp.net jquery pagination repeater
也许您可以使用其中一种jQuery plugins?
【讨论】:
tablesorter pager plugin 非常可爱,可以很好地与 tablesorter 排序功能配合使用。
【讨论】:
如果您想一次加载所有页面,请尝试this plugin。
【讨论】:
在服务器端,您必须更改“viewmodel” - 从数据库返回的记录以及一些额外信息:以便它包含另外三个变量:currentPage rowsPerPage 和 totalRows 用于查询。
对于仅客户端的分页(调用数据库并获取所有行,然后每次显示不同的子集),您将向数据添加行号,并为 rowsPerPage 和当前页面设置一个变量。
然后您必须制作分页“webcontrol”或使用 javascript/jquery 代码自己手动运行所有部分。分页控件通常有一个上一页 (>) 按钮、记录总数和下一页的数量,或带有可供选择的下拉列表的 CurrentPage 文本框。
如果您在最后一页,则 NextPage 将被禁用。如果您在第一页,则与 PreviousPage 相同。通常,当前页码以某种方式标记(着色或以粗体书写)。
每页的行数通常可以由用户设置,也许可以通过下拉菜单设置一些选项。此功能通常可以选择隐藏或设为只读。
一旦进行页面更改,当前页码(从 1 开始)将更改,不会传递最后一个或第一个...并显示该页面的行。数学是:
firstRowOnCurrentPage = (currentPage - 1) * rowsPerPage;
最后一行最多为:
maxLastRowOnCurrentPage = firstRowOnCurrentPage + (rowsPerPage - 1) // if there are enough records, or the remaining records for the last page.
记录是通过 ajax 中的存储过程 SQL 调用检索的(在您的 Web 服务页面中,您有一个 GetWhatever(即 GetProducts 或在 NancyFX 中它只是一个 /Products 模块,而在 MVC 中是一个 /Products 控制器...)调用数据库并仅检索该数量的记录。您的转发器会自动重复此操作。
See here for an MS SQL example 或here for a PHP and mySQL example。
对于带有分页的仅客户端中继器,(即调用数据库一次,然后将结果提供给“数据库模型”对象,所有分页均使用此数据完成,无需第二次调用数据库)您将绑定到本地数组。
最后但同样重要的是,仅对于客户端,您需要使用一组更新/刷新按钮来更新修改和删除的数据,或刷新。
【讨论】: