分页使用跳过和采取方法

时间:2012-01-02 13:52:43

标签: c# asp.net

var skip = selectedPage*pageSize;
            var take = Math.Min(result.DataSourceCount - skip, pageSize);

            List<SENTINEL_OPERATION> results = sentinelOperationManager.SearchSentinelOperations(sid).Skip(skip).Take(take).ToList();

我的上一页总是空着。我使用PageDataSource获取pagesize并使用jquery ajax get发送单击的页面。我错过了什么?感谢

1 个答案:

答案 0 :(得分:6)

我打赌,selectedPage从代码中的1开始,这会导致错误。然后,当您在第一页时获得skip == pageSize,并且您在最后一页上“超出范围”,但您正在跳过“真正的”第一页。

如果selectedPage1开始,则将此公式更改为:

var skip = (selectedPage - 1 ) * pageSize;

此外 - 无需手动计算take值。您可以通过pageSize,它将始终有效。如果您的数据源不包含足够的元素,则不会发生任何错误,只会返回可用的元素。