我正在制定一个要求,我有一个名为'emailSearchResults'的数据源,在那里我搜索电子邮件元数据并将结果加载到数据源中 .
数据源中的字段不相关,但是我将数据源设置为每页有50条记录,如下面的屏幕截图所示:
我用来加载数据源的脚本显示在查询字段中,调用以下脚本:
function getMessageDetails(userId, msgID)
{
var messageDetails = [];
var messageData;
var msgID_,subject_,from_,date_;
messageData=Gmail.Users.Messages.get(userId,msgID,{format:"metadata", metadataHeaders:["Message-ID", "Subject", "From", "Date"]});
console.log(messageData.payload.headers);
//console.log(msgID);
//console.log(messageData.payload.headers[3].value);
date_="<na>";
from_="<na>";
subject_="<na>";
msgID_="<na>";
for (var counter =0;counter<4;counter++)
{
if (messageData.payload.headers[counter].name=="Message-ID")
{
msgID_=messageData.payload.headers[counter].value;
}
if (messageData.payload.headers[counter].name=="Subject")
{
subject_=messageData.payload.headers[counter].value;
}
if (messageData.payload.headers[counter].name=="From")
{
from_=messageData.payload.headers[counter].value;
}
if (messageData.payload.headers[counter].name=="Date")
{
date_=messageData.payload.headers[counter].value;
}
}
messageDetails.push(date_);
messageDetails.push(from_);
messageDetails.push(subject_);
messageDetails.push(msgID_);
return messageDetails;
}
function searchMessages(userId,condition)
{
//
// first we build the conditions
// we can make it fixed
// or we can make it dynamic
var searchResult;
var deleteResult;
var currentMessage;
var results = [];
var pageToken;
var params = {};
var _stat;
var options = {
includeSpamTrash: "true",
pageToken: pageToken
};
var msgRecord = [];
do
{
searchResult=Gmail.Users.Messages.list(userId,options);
for (var i = 0; i < searchResult.messages.length; i++)
{
var record=app.models.emailSearchResults.newRecord();
msgRecord=getMessageDetails(userId,searchResult.messages[i].id);
record.msgMainID=searchResult.messages[i].id;
record.msgID=msgRecord[3];
record.subject=msgRecord[2];
record.senderAddress=msgRecord[1];
record.msgDate=msgRecord[0];
/*console.log(searchResult.messages[i].id);
console.log(msgRecord[3]);
console.log(msgRecord[2]);
console.log(msgRecord[1]);
console.log(msgRecord[0]);
return;*/
results.push(record);
msgRecord=null;
}
if (searchResult.nextPageToken) {
options.pageToken = searchResult.nextPageToken;
}
} while (searchResult.pageToken);
searchResult=null;
return results;
}
在主页面上,我放了一个表并将其链接到数据源,然后我在表格上启用了分页,所以我得到了表格底部的寻呼机按钮,如下所示:
当我执行应用程序并填充数据源时,我看到第一页的结果是正确的,但是当我想要移动到下一页时,我点击下一页按钮,一旦加载完成,我发现我仍然可以从表格的第一页看到相同的结果 .
我不熟悉如何使表格显示第二页的结果,然后是第三页,我就是围绕这个......
希望解释清楚并解决问题..
我真的很感激任何帮助!问候
1 回答
目前分页与计算数据源无法正常工作 . 但是,您可以构建自己的 . 要完成此任务,您需要进行一些更改 . 首先,您需要将searchMessages函数重构为以下内容:
然后你需要添加一个名为
page
的数字参数 .您需要修改分页窗口小部件的各种属性 . 以下是上一个/下一个点击功能:
以前:
下一个:
你应该可以从那里拿走它 .