[英]CAML query filtering is not working
我用谷歌搜索,以防万一查询格式不正确。 但是我已经验证了几个小时,没有发现任何错误。 问题很常见:查询不会过滤并返回所有数据。
我不知道出什么问题了,因为我在Stramit CAML查看器中检查了此查询,并且工作正常。
private static SPListItemCollection GetItemsForThisUserAndEvent(SPList list)
{
const string queryMask =
@"<Where>
<And>
<Eq>
<FieldRef Name='{0}' LookupId='TRUE' />
<Value Type='Lookup'>{1}</Value>
<Eq>
<Eq>
<FieldRef Name='{2}' LookupId='TRUE' />
<Value Type='User'>{3}</Value>
<Eq>
</And>
<Where>";
var query = string.Format(queryMask, MemberListFieldLookupEventName, SPContext.Current.ListItem.ID,
MemberListFieldLogin, SPContext.Current.Web.CurrentUser.ID);
return list.GetItems(query);
}
可以接受字符串的SPList.GetItems
的重载实际上就是这种重载 ,它接受字段列表的params string[]
参数,该字段列表应在返回该列表中的所有项目时返回。 它不希望CAML查询。
您需要将CAML填充到SPQuery
对象中,然后将该SPQuery
对象提供给GetItems
:
list.GetItems(new SPQuery() { Query = query });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.