SP2010: как создать представление списка, которое фильтрует поле поиска

Как говорится в заголовке: в sharepoint 2010 мне нужно программно создать представление, которое позволяет мне фильтровать элементы в списке (список людей). В этом списке людей у ​​меня есть поле поиска, которое ссылается на другой список (проекты): мне нужно показать только людей, которые работают над определенным проектом (передается как строка)

Я создал пример представления, используя этот код:

class Program
    {
        static void Main(string[] args)
        {
            using (SPSite site = new SPSite("http://dev_seventeen:999"))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    SPList books = web.Lists["Books"];
                    StringCollection fields = new StringCollection();
                    fields.Add("Title");
                    fields.Add("Publisher");
                    fields.Add("Autore");
                    var query = new XElement("Where",
                                    new XElement("Eq",
                                        new XElement("FieldRef", new XAttribute("Name", "Publisher")),
                                        new XElement("Value", new XAttribute("Type", "Choice"), "Alpha")
                                        )
                                    ).ToString(SaveOptions.DisableFormatting);

                    SPView view = books.Views.Add("TestView",
                        fields,
                        query,
                        100,
                        false,
                        false,
                        Microsoft.SharePoint.SPViewCollection.SPViewType.Html,
                        false
                        );
                    Console.WriteLine(query);
                    Console.ReadLine();
                }
            }
        }
    }

Он фильтрует список с именем «Книги» в поле типа выбора с именем «Издатель» и ищет все книги, опубликованные «Альфой».

Что мне нужно знать, так это как фильтровать поле поиска вместо поля выбора, потому что, если я просто поставлю «Поиск» вместо «Выбор» в запросе, это не сработает = (

Спасибо


person Maik    schedule 15.10.2010    source источник


Ответы (1)


Можете ли вы использовать LookupID в качестве типа? Это гарантирует, что у вас будет только одно совпадение. Проверьте следующие страницы для полей поиска, CAML и LINQ:

person Dennis G    schedule 15.10.2010
comment
Должно быть что-то не так... Я попробовал это еще раз, по-видимому, ничего не изменяя, и это работает (используя обычный поиск в качестве типа значения). Самое странное, что если я пытаюсь отфильтровать с использованием типа текстового значения, я получаю эту ошибку при применении представления к списку: Один или несколько типов полей не установлены должным образом. Перейдите на страницу настроек списка, чтобы удалить эти поля. =О - person Maik; 15.10.2010
comment
Об ошибке типов полей: вы используете внутренние имена столбцов? См. этот FAQ: sharepoint- tip.com/2007/04/ - person Dennis G; 16.10.2010