【发布时间】:2018-03-11 13:30:25
【问题描述】:
我有一张包含数千个条目的表格。我正在构建一个 Web 应用程序 (Razor C#) 来显示一个包含信息的表格。
我有一个工作的分页系统,但是我找不到知道当前结果集是否有最后一个结果的方法。
我想过这样做:
- pageNumber * resultPerPage
- 预做下一页,看看有没有结果
我需要这样做才能隐藏“下一步”按钮。 这是我当前的代码(我将其附加到根据过滤器集构建的查询中):
ORDER BY ID
OFFSET ((" + page + " - 1) * " + rowsPerPage + ") ROWS
FETCH NEXT " + rowsPerPage + " ROWS ONLY
谢谢!
【问题讨论】:
-
降序排列。然后最后一个条目是第一行。
-
@lad2025 我知道这一点,但它的限制使我无法访问直接页面。另外,我还需要来回走动。
-
@jdweng 这是一个很酷的想法,但是想象一下:我在最后一页得到 50 个值(我允许 100 个)。然后我将得到最后一个值。结果它得到了一个新条目(刚刚插入)。我允许用户使用下一页按钮。但由于最后一个结果集中只有 50 个项目,“下一页”将显示为空。如果我在返回结果之前检查了最后一个条目,我将不得不检查每个返回的项目以查看它是否与最后一个匹配。而且,如果有一个新条目需要进入一个新页面,用户将不允许点击“下一页”
-
获取行数。如果您得到 930 行,那么如果每页有 100 行,则最后一页为 30。使用 Mod 函数 930 % 100 = 30。然后使用 TOP(30) 函数。
标签: c# sql sql-server sql-server-2017