【发布时间】:2014-01-16 11:05:36
【问题描述】:
我有一个搜索页面,它会在多个页面上返回我的结果。这真的很好用。代码如下:
//Paging Variables
var pageSize = 6;
var totalPages = 0;
var count = 0;
var page = UrlData[0].IsInt() ? UrlData[0].AsInt() : 1;
var offset = (page -1) * pageSize;
string selectQueryString = "SELECT * FROM Property_Info";
queryResults = db.Query(selectQueryString);
count = queryResults.Count();
totalPages = count/pageSize;
if(count % pageSize > 0){
totalPages += 1;
}
selectQueryString += "OFFSET @0 ROWS FETCH NEXT @1 ROWS ONLY;";
queryResults = db.Query(selectQueryString, offset, pageSize);
我遇到的问题是,我想让用户选择更改每个页面上显示的属性数量。为此,我将“pageSize”变量设置为 0,该变量根据查询字符串而变化。
问题是,分页停止工作。当我转到第二页时,它显示的结果与第一页相同?
这是查询字符串代码:
//Set page size
if (Request.QueryString["pagesize"].AsInt() == 2)
{
pageSize = 2;
}
else
{
pageSize = 4;
}
各位有什么想法吗?
【问题讨论】:
-
只是一个想法,因为我使用的是 SQL Express,所以 fetch/offset 是不是最好的方法?我刚看了,这主要用于SQL compact?
-
SQL Express 从 2012 版开始支持
OFFSET和FETCH。 -
太好了,感谢您提供的信息。我没有更接近解决我的问题,但很高兴知道我没有完全使用错误的代码!
-
你能展示你的代码吗?即你把你的“查询字符串代码”放在哪里?
-
好的,我会上传完整代码并发布链接。
标签: razor pagination webmatrix