Вот что я делаю (это быстрый поиск в Google и только один из первых результатов):
http://msdn.microsoft.com/en-us/library/cc300163(v=office.12).aspx
Мои элементы DropDownList с привязкой к данным выглядят так:
<listitem>All Providers</listitem>
<listitem>Provider 1</listitem>
<listitem>Provider 2</listitem>
Мой текущий CAML-запрос в представлении выглядит так:
<Query>
<Where>
<And>
<Or>
<Eq>
<FieldRef Name="Status" />
<Value Type="Lookup">Submitted</Value>
</Eq>
<Eq>
<FieldRef Name="Status" />
<Value Type="Lookup">In Progress</Value>
</Eq>
</Or>
<Eq>
<FieldRef Name="Provider"/>
<Value Type="Text">{Param1}</Value>
</Eq>
</And>
</Where>
<OrderBy>
<FieldRef Name="ID" Ascending="FALSE"></FieldRef>
</OrderBy>
</Query>
Что мне НУЖНО, так это ...
В псевдокоде:
Если {Param1} равен "Все провайдеры", просто отфильтруйте статус, где Статус равен "Отправлено" или "Выполняется"
иначе, если {Param1} не равен фильтру «Все провайдеры» в статусе и провайдере, где статус равен «Отправлено» или «Выполняется», а провайдер равен {Param1}
Как поместить это в схему View XML?
Я знаю, что это можно сделать, поскольку Microsoft уже использует его в SharePoint, и есть сторонние элементы управления, которые делают это.
Например ...
1) В SP нажмите «Списки» в левом меню навигации.
2) Справа, под окном поиска ', вы увидите «View:» с выпадающим списком.
3) В зависимости от того, какое представление вы выберете, строка запроса URL-адреса содержит «BaseType», который изменяется на значение по вашему выбору. Если выбран «Весь контент сайта», «Базовый тип» не включается в строку запроса.
Спасибо,
Joshua