如何使用getByUid()获取数据集页码

时间:2014-03-02 06:56:18

标签: jquery listview kendo-ui kendo-mobile kendo-datasource

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

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

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

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

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

2 个答案:

答案 0 :(得分:0)

你可以做这样的事情

data = dsOfferList.getByUid(e.view.params.uid);
var index = dsOfferList.data().indexOf(data);
var page = Math.round(index/dsOfferList.pageSize()) + 1;

答案 1 :(得分:0)

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

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