Отфильтровать поля внешнего списка от клиента

ФОН:

Мы разрабатываем специальное приложение, которое обращается к SharePoint через клиентскую объектную модель, и этому приложению требуется доступ к спискам ECT (внешний тип контента), определенным в SharePoint с помощью OM (объектной модели). Это приложение является продуктом, который можно использовать с большинством установок и настроек SharePoint, и он не может иметь предварительных знаний о внешних списках.

Если для ECT не настроены фильтры, SharePoint возвращает все доступные элементы в списке (если число ниже порогового значения). В тот момент, когда мы определяем фильтр для этого ECT, SharePoint возвращает только элементы после применения этого фильтра (вероятно, правильное поведение от SP).

ПРОБЛЕМА:

Нам необходимо иметь возможность выполнять поиск в этом списке ECT (без фильтрации) на основе текста, введенного пользователем в поле поиска. На данный момент, похоже, нет возможности изменить фильтр, применяемый SharePoint при возврате значений вызывающему объекту.

Т.е. В моем списке ECT 10 пунктов (1,2,3… 10). Каждый элемент имеет 3 столбца (идентификатор, имя, описание). После настройки фильтра для списка ECT SharePoint возвращает элементы 2, 3 и 6, когда я запрашиваю у SharePoint список элементов.

Нет, пользователь выполняет поиск, соответствующий описанию элемента 7. Как мне выполнить поиск / фильтрацию в списке, чтобы вернуть элемент, соответствующий моему поисковому запросу?

Я бегал по кругу, пытаясь решить эту проблему, но, похоже, ничего не помогло. Я попытался настроить запрос CAML, а также LoadQuery, как определено в http://pholpar.wordpress.com/2011/02/09/how-to-query-external-lists-on-the-client-side-using-caml/ и http://msdn.microsoft.com/en-us/library/ff464384.aspx, но ничего не работает.


person JD Stuart    schedule 05.04.2012    source источник


Ответы (1)


Даже у меня была такая проблема. Позвольте мне сказать вам, что это невозможно сделать. Даже в серверной объектной модели была возможность изменить фильтры представления по умолчанию, но тогда SPList вернет 0 элементов после применения фильтра. Самое забавное, что когда ваш код запускается и вы открываете список в пользовательском интерфейсе SP, вы можете увидеть фактический измененный список. Но того же не может быть запросов в объектной модели.

Выглядит странно. Я думаю, если вы измените SPList (на основе ECT) в этом случае, вы сможете получить результаты только в следующем экземпляре (например, при обновлении следующей страницы ...)

person Anand    schedule 07.05.2012