Daterangesoverlap всегда возвращает все результаты
-
29-09-2020 - |
Вопрос
У меня проблема с Ssquery и datarangesoverlap.
В моем календаре есть три события, которые не происходят сегодня. В Sppquery.Query Я хочу исключить эти события. К сожалению, все события возвращаются.Фильтр содержит фильтр для текстового столбца отлично работает, но datarangesoverlap не делает никакой фильтрации.Вот мой код:
SPListCollection oLists = oSiteCollection.AllWebs["MYSITE"].Lists;
String res = "";
SPQuery spquery = new SPQuery();
string datasel = SPUtility.CreateISO8601DateTimeFromSystemDateTime(caldata.SelectedDate.Date);
spquery.Query = "<Where><And><DateRangesOverlap><FieldRef Name=\"EventDate\" /><FieldRef Name=\"EndDate\" /><FieldRef Name=\"RecurrenceID\" /><Value Type=\"DateTime\" IncludeTimeValue=\"True\">Today</Value></DateRangesOverlap><Or><Contains><FieldRef Name=\"Title\" /><Value Type=\"Text\">" + tbnome.Text + "</Value></Contains></Or></And></Where>";
spquery.ExpandRecurrence = true;
spquery.RowLimit = 100;
foreach (SPList l in oLists) {
String title = l.Title;
if (title.IndexOf("MyCalendar")==0) {
SPListItemCollection items = l.GetItems(spquery);
foreach (SPListItem item in items)
{
res += "<li>" + item["Title"] + " date1 " + item["Start Time"] + " date2 " + item["End Time"] + "</li>";
}
}
}
res = "<ul>"+res+"</ul>";
. Решение
Я написал
<Value Type=\"DateTime\" IncludeTimeValue=\"True\">Today</Value>
.
вместо
<Value Type=\"DateTime\" IncludeTimeValue=\"True\"><Today /></Value>
. Другие советы
К сожалению, дата CAML вещена в значительной степени отстой в SharePoint.Он не будет сравнивать в зависимости от времени, и я думаю, что Daterangesoverlap работает только для повторяющихся событий.Являются ли события, которые вы ожидаете, не отображаются события повторяющихся или единых экземпляров?
Не связан с sharepoint.stackexchange