我需要在我的应用程序中向下滚动页面加载。我使用couchdb作为我的后端,我在couchdb中找到了一个分页选项,我认为这将满足我的问题。
事情是我无法在任何地方找到任何分页的工作示例。我需要别人的帮助才能让我的应用程序与这个一起工作。
请查看此参考资料:https://github.com/soitgoes/LoveSeat/blob/master/LoveSeat/PagingHelper.cs
这是我的代码。我在options = model.GetOptions();
行中收到错误,说“对象引用未设置为对象的实例”。
public List<newVO> Getdocs(IPageableModel model)
{
List<newVO> resultList = new List<newVO>();
var etag = "";
ViewOptions options = new ViewOptions();
options = model.GetOptions();
options.StartKeyDocId = lastId;
options.Limit = 13;
options.Skip = 1;
var result = oCouchDB.View<newVO>("GetAlldocs", options);
//model.UpdatePaging(options, result);
if (result.StatusCode == HttpStatusCode.NotModified)
{
response.StatusCode = "0";
return null;
}
if (result != null)
{
foreach (newVO newvo in result.Items)
{
resultList.Add(newvo );
}
}
return resultList;
}
提前致谢。欢迎所有的想法。
public List<newVO> Getdocs(IPageableModel model)
{
List<newVO> resultList = new List<newVO>();
var etag = "";
ViewOptions options = new ViewOptions();
options = model.GetOptions();
options.StartKeyDocId = lastId;
options.Limit = 13;
options.Skip = 1;
var result = oCouchDB.View<newVO>("GetAlldocs", options);
//model.UpdatePaging(options, result);
if (result.StatusCode == HttpStatusCode.NotModified)
{
response.StatusCode = "0";
return null;
}
if (result != null)
{
foreach (newVO newvo in result.Items)
{
resultList.Add(newvo );
}
}
return resultList;
}
这是我的代码,我在“options = model.GetOptions();”中收到错误对象引用未设置为对象实例的行...
答案 0 :(得分:1)
我没有使用LoveSeat分页实现,但您可以使用Limit
上的Skip
和ViewOptions
属性来实现分页:
public static IEnumerable<T> GetPage(this ICouchDatabase couchDatabase,
string viewName,
string designDoc,
int page,
int pageSize)
{
return couchDatabase.View(viewName, new ViewOptions
{
Skip = page * pageSize,
Limit = pageSize
}, designDoc);
}
这个简单的扩展方法将从CouchDB视图中获取一页数据