【发布时间】:2015-12-30 22:18:40
【问题描述】:
我们有一个实现分页的 jquery.jtable 页面。我们注意到分页不太正常。例如,如果总共有 17 项,则第一页正确显示 10,第二页显示 7。但是,如果总共 20 项,则第一页显示 10,第二页仅显示 8。 我们正在使用:
return myQuery.Skip(startIndex).Take(pageSize).ToList()
在第二页上,startindex = 10,页面大小 = 10,正如我上面所说,它只返回 8。罪魁祸首似乎是 .Take。我在代码上方放置了一个 if 语句,取为:
if (myQuery.Skip(startIndex).ToList().Count() <= pageSize)
{
return myQuery.Skip(startIndex).ToList();
}
在第二遍中,If 返回 true,因为 count 和 pagesize 都是 10。这里的 return 确实返回了第二页的所有 10 行。我担心的是,如果完整的 myQuery 集很大,这可能会导致资源问题。幸运的是,这个特定的表包含的行数很少。
有没有其他人遇到过这种情况并找到了更好的解决方案?
【问题讨论】:
-
您能否使用 LINQ to Objects 用一个简短但完整的程序重现这一点?我希望它会好起来......(目前还不清楚 jquery 是在哪里出现的,顺便说一句。仅仅因为 jquery 发出请求并不意味着它是问题的一部分。我会尽可能多地隔离问题你可以,删除所有无关的方面。)