Не удается использовать тип содержимого папки в Sharepoint 2007 - PullRequest
2 голосов
/ 28 марта 2011

У меня есть сайт, на котором я распечатал и добавил столбцы в тип контента «Папка».Теперь я хочу добавить этот тип контента в библиотеку документов, но у меня нет возможности добавить его в Настройки библиотеки документов -> Добавить из существующих типов контента сайта.Я не вижу «Типы содержимого папки» в раскрывающемся меню «Группы».Кроме того, если я перемещу тип содержимого в другую группу, которая отображается в этом раскрывающемся списке, он все равно не отображается.Есть ли что-то, что я должен сделать, чтобы сделать этот тип контента выбором для моей библиотеки документов или местом, чтобы выбрать, какие группы типов контента можно использовать для сайта?

Большое спасибо

1 Ответ

2 голосов
/ 29 марта 2011

Если вы создали свой собственный тип контента, и он опубликован / активирован в SharePoint, он должен быть доступен для добавления в библиотеку документов.Просто убедитесь, что ваша библиотека документов настроена на поддержку типов содержимого.

В разделе «Дополнительные настройки» в разделе «Настройки библиотеки документов» выберите Yes в поле «* 1004». Затем продолжите, как и прежде. Настройки -> Добавить из существующих типов контента сайта ..

Вы можете использовать консольное приложение (ref MSDN ) для добавления типа контента в список на вашем сайте.Это также дает вам полезные сообщения о текущем состоянии вещей.

class Program {
    static void Main(string[] args) {
        using (SPSite siteCollection = new SPSite("http://YOUR_SPSITE")) {
            using (SPWeb site = siteCollection.OpenWeb() {

                // Get a content type.
                SPContentType ct = site.AvailableContentTypes["YOUR_CONTENT_NAME"];

                // The content type was found.
                if (ct != null) 
                    // Get a list.
                    try {
                        SPList list = site.Lists["YOUR_DOCUMENT_LIBRARY_NAME"]; // Throws exception if does not exist.

                        // Make sure the list accepts content types.
                        list.ContentTypesEnabled = true;

                        // Add the content type to the list.
                        if (!list.IsContentTypeAllowed(ct))
                            Console.WriteLine("The {0} content type is not allowed on the {1} list",
                                                ct.Name, list.Title);
                        else if (list.ContentTypes[ct.Name] != null)
                            Console.WriteLine("The content type name {0} is already in use on the {1} list",
                                                ct.Name, list.Title);
                        else
                            list.ContentTypes.Add(ct);
                    } 
                    catch (ArgumentException ex) // No list is found.                         
                    {
                        Console.WriteLine("The list does not exist.");
                    }
                else // No content type is found.
                    Console.WriteLine("The content type is not available in this site.");
            }
        }
        Console.Write("\nPress ENTER to continue...");
        Console.ReadLine();
    }
}
...