SharePoint 2010: редактировать вид программно - PullRequest
3 голосов
/ 15 октября 2010

Как видно из заголовка, мне нужен способ программно редактировать существующее представление списка в sharepoint 2010. Я нашел много примеров создания нового представления:

SPList documents = web.Lists["Documents"];
StringCollection fields = new StringCollection();
fields.Add("Type");
fields.Add("Name");
fields.Add("File Size");
fields.Add("Modified");
fields.Add("Modified By");
fields.Add("Version");
var query = new XElement("Where",
    new XElement("Eq",
        new XElement("FieldRef", new XAttribute("Name", "Project")),
        new XElement("Value", new XAttribute("Type", "Lookup"), "alpha")
    )
).ToString(SaveOptions.DisableFormatting);

SPView view = documents.Views.Add(
    "ProjectFilter",
    fields,
    query,
    100,
    false,
    false,
    Microsoft.SharePoint.SPViewCollection.SPViewType.Html,
    false);

У меня также естьнашел несколько примеров редактирования существующего списка в терминах отображаемых полей:

SPList documents = web.Lists["Documents"];
SPview view = documents.Views["All Documents"];
view.ViewFields.Add("Price");
view.Update();

Единственное, что я не нашел, - это способ изменить существующее представление, отфильтровав его с помощью запроса CAML, таким же образом.как пример выше, когда я его создал

Есть ли способ сделать это?

1 Ответ

3 голосов
/ 18 октября 2010

Хорошо, вот решение!

SPList documents = web.Lists["Documents"];
SPView docview = documents.Views["Project Filtered"];

var docquery = new XElement("Where",
    new XElement("Eq",
        new XElement("FieldRef", new XAttribute("Name", "Project")),
        new XElement("Value", new XAttribute("Type", "Lookup"), "alpha")
    )
).ToString(SaveOptions.DisableFormatting);

docview.Query = docquery;
docview.Update();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...