[英]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.