Я работаю над требованием, когда у меня есть источник данных с именем 'emailSearchResults', в котором я ищу метаданные сообщений электронной почты и загружаю результаты в источник данных.
Однако поля в источнике данных не релевантныЯ установил для источника данных 50 записей на странице, как показано на снимке экрана ниже: ![enter image description here](https://i.stack.imgur.com/2bdzu.png)
Скрипт, который я использовал для загрузки источника данных, показан в поле запроса, которое вызывает следующееscript:
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;
}
На главной странице я поместил таблицу и связал ее с источником данных, и включил разбивку на страницы, поэтому я получаю кнопки пейджера внизу таблицы, как показано ниже:
![enter image description here](https://i.stack.imgur.com/OCXSB.png)
Когда я запускаю приложение и источник данных заполняется, я вижу результаты первой страницы в правильном виде, однако, когда я хочуперейти к следующей странице, я нажимаю кнопку следующей страницы и, как только загрузка завершена, я обнаруживаю, что я все еще вижу те же результаты с первой страницы таблицы.
Я не фамилияс тем, как заставить таблицу отображать результаты второй страницы, а затем третьей страницы, и я собираюсь по кругу об этом ...
Надеюсь, что объяснение понятно и решает проблему ..
Буду очень признателен за любую помощь в этом!Привет