1

我有一个使用 LoadMore 的列表视图。数据单击加载详细视图,我正在使用 getByUid() 从现有数据集中获取数据。

data = dsOfferList.getByUid(e.view.params.uid);

有没有办法知道该记录属于数据源的哪个页面?如果我使用 dsOfferList.page(),我会在最后一次更改事件之后获得数据集的页码,而不一定是列表视图项来自的页面。

例如,假设我有一个包含 200 条记录的数据集,并且我正在使用 serverPaging 并且 pageSize 为 50。最初,dsOfferList.page() 将返回 1。然后我向下滚动列表并单击 Load More 按钮。现在 dsOfferList.page() 将返回 2。但如果我向上滚动列表中的一些项目,这些项目(仍加载在 DOM 中)来自第 1 页。我需要能够单击列表视图项目之一并知道如果它是从第 1 页数据源或第 2 页数据源加载的。

如何获取单击的列表视图项的页码?

4

2 回答 2

0

你可以做这样的事情

data = dsOfferList.getByUid(e.view.params.uid);
var index = dsOfferList.data().indexOf(data);
var page = Math.round(index/dsOfferList.pageSize()) + 1;
于 2014-03-02T08:52:12.807 回答
0

到目前为止,我还没有找到从 schema.parse() 访问当前 datasource.page() 的方法,但是,您可以从 datasource.change() 访问。我最终使用 datasource.change() 函数将返回的数据逐行(包括页面变量)推送到第二个数据源对象中。所以现在每次数据源触发时,它都会自动使用数据更新第二个数据源,包括我需要的页面变量。

需要记住的一点是,即使您从第一个数据源传递 UID,第二个数据源的 UID 也是不同的。我在两个数据源中都设置了 schema.id,并在引用特定数据行时使用它。

于 2014-03-08T09:53:08.843 回答