30 июл. 2012 г.

Как привязать к списку свои ASPX-формы

Как быстро и просто программным способом назначить для списка свои формы, лежащие в _layouts? Для этого нужно взять у списка нужный тип содержимого и подменить часть XML в его определении. Для примера возьмём первый попавшийся тип содержимого и назначим ему формы просмотра и редактирования:

var ct = list.ContentTypes[0];

string ns = "http://schemas.microsoft.com/sharepoint/v3/contenttype/forms/url";
var xml = new System.Xml.XmlDocument();
xml.LoadXml(
"<FormUrls xmlns=\"" + ns + "\">" +
    "<Display>_layouts/MyDisplayForm.aspx</Display>" +
    "<Edit>_layouts/MyEditForm.aspx</Edit>" +
"</FormUrls>");

ct.XmlDocuments.Delete(ns);
ct.XmlDocuments.Add(xml);
ct.Update();

2 комментария:

  1. а чо, SPContentType.NewFormUrl, DisplayFormUrl и т.д. - не пашут разве? :)

    ОтветитьУдалить
    Ответы
    1. Да пашут, конечно. Но я же, как обычно, их сначала не заметил. А когда заметил, решил не удалять этот пост, пущай висит :) Надо бы мне к окулисту сходить, что-то в последнее время элементарных вещей не замечаю.

      Удалить