分页使用跳过和采取方法

Joh*_*han 0 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();
Run Code Online (Sandbox Code Playgroud)

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

Jar*_*rek 6

我打赌,selectedPage从你的代码中的1开始,这导致错误.然后你skip == pageSize在第一页上获得,并且你在最后一页上"超出范围",但是你正在跳过"真正的"第一页.

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

var skip = (selectedPage - 1 ) * pageSize;
Run Code Online (Sandbox Code Playgroud)

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