2015-11-21 4 views
1

Я хочу отфильтровать список Sharepoint с запросом caml для поля lookupmulti, но я хочу фильтровать элементы, которые имеют только одно значение. Например,Запрос Caml для поля lookupmulti, равный только одному значению

ID LookupMultiField

1 - Значение1, Значение2, Value11

2 - Значение1

3 - Значение2, Value3, Value4

При использовании Eq statetement для единственного значения «Value1» в моем результате запроса - это элементы с идентификаторами 1 и 2. Но я хочу только получить элемент с идентификатором 2. Как это возможно?

ответ

0

Я не думаю, что есть способ сделать это прямо в CAML на вашем LookupMultiField.

Самый простой способ, вероятно, получить все элементы с Value1, а затем сделать дополнительную фильтрацию в вашем коде.

Другим подходом было бы скопировать ваш LookupMultiField в текстовое поле (например, через рабочий процесс) и выполнить фильтрацию в этом текстовом поле.

Если у вас есть только несколько значений, вы также можете попытаться свести на нет свое условие фильтрации (поданные NEQ Value2 и NEQ value3 и ...).

0

Вы можете использовать оператор "содержит", как:

<Where> 
    <Contains> 
     <FieldRef Name="LookupMultiField" LookupId="True"/> 
     <Value Type="Text">1</Value> 
    </Contains> 
</Where> 

Но вы должны знать ID фильтрующий элемент