如何使用对 SharePoint 列表的 pnp.sp.web REST 调用来筛选检索到的项目

How to filter the retrieved items using a pnp.sp.web REST call to a SharePoint list

我想过滤我的表单从中检索项目的 SP 列表。该列表有两列标题、开始日期。我想检索开始日期项目,但日期是今天或未来 21 天后的日期。

我已经有了这个:

 public _getMeetings() {
    pnp.sp.web.lists.getByTitle("Meetings").items.filter("StartDate What here?! eq 'WHAT HERE?!'").get().then((items: any[]) => {
      let returnedPMeetings: IDropdownOption[] = items.map((item) => { return { key: item.StartDate, text: item.StartDate }; });
      this.setState({ MeetingsList: returnedPMeetings });
    });
  }


如您所见,我在过滤器参数中有一些内容,但我不知道如何实现我需要的特定过滤器。据我所知,没有关于过滤所需语法的合适资源。

您可以按日期筛选:

public _getMeetings() {
    let today = new Date();
    let futureDate = new Date();
    let offsetDays = 21;
    futureDate.setDate(futureDate.getDate() + offsetDays, futureDate.getMonth(), futureDate.getFullYear());
    var filterString = `StartDate ge datetime'${today.toISOString()}' and StartDate le datetime'${futureDate.toISOString()}'`;
    pnp.sp.web.lists.getByTitle("Meetings").items.filter(filterString).get().then((items: any[]) => {
        let returnedPMeetings: IDropdownOption[] = items.map((item) => { return { key: item.StartDate, text: item.StartDate }; });
        this.setState({ MeetingsList: returnedPMeetings });
    });
}

编辑 1

您可以尝试这样的 CamlQuery:

<Query>
    <Where>
        <And>
            <Ge>
                <FieldRef Name="StartDate" />
                <Value Type="DateTime">
                    <Today />
                </Value>
            </Ge>
            <Leq>
                <FieldRef Name="StartDate" />
                <Value Type="DateTime">
                    <Today OffsetDays="21" />
                </Value>
            </Leq> 
        </And>
    </Where>
</Query> 

希望对您有所帮助,

你好乔!

有关更多 SharePoint 相关信息,请查看 here