如何使用对 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
我想过滤我的表单从中检索项目的 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