【问题标题】:Office 365 API Outlook Paging not workingOffice 365 API Outlook 分页不起作用
【发布时间】:2017-01-04 20:22:46
【问题描述】:

我正在使用 Microsoft.Office365.OutlookServices 来使用 Office 365 Outlook Web 服务。

我正在尝试使用分页支持查询用户的收件箱。像这样:

var query = from t in outlookServicesClient.Me.Folders.GetById("Inbox").Messages
            select t;

var mailResults = await query
            .OrderByDescending(i => i.DateTimeReceived)
            .Skip((pageNo - 1) * pageSize)
            .Take(pageSize)
            .ExecuteAsync();

假设 pageSize = 10,并且用户在他的收件箱中有 10 条消息,属性 mailResults.MorePagesAvailable 返回 True,不正确的应该返回 False。

仅当 pageSize 等于用户收件箱中的邮件数量时才会发生这种情况。例如,如果用户的收件箱中有 9 条消息,则该属性返回 False。

我做错了什么?

谢谢!

【问题讨论】:

  • 作为健全性检查 - 当您通过 pageSize = 10 时,pageNo 的值是多少?我认为传递给Skip()Take() 的值可能有问题
  • pageNo 的值等于 1。(pageNo -1) * pageSize -> (1 - 1) * 10 = 0 * 10 = 0。
  • 尝试将代码更改为var mailResults = await (from i in outlookClient.Me.Folders.GetById("Inbox").Messages orderby i.DateTimeReceived descending select i).Skip((pageNo - 1) * pageSize).Take(pageSize).ExecuteAsync(); 看来您正在从收件箱中提取所有电子邮件,然后应用分页。可能这可能导致此标志设置为 True。
  • 我试过你的代码,但问题仍然存在...... :(
  • 我发现了同样的问题!

标签: c# linq outlook office365


【解决方案1】:

在混乱的新 Outlook 中创建分页:

点击第一封电子邮件,然后滚动 下降到你想要的任何范围。 按住 shift + alt 并右键单击。 这会设置您选择的范围/页面。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多