无法在Sharepoint 2007中使用文件夹内容类型

时间:2011-03-28 15:27:53

标签: sharepoint contenttype

我有一个我已启封的网站,并在内容类型中添加了列,'文件夹'。现在,我想将此内容类型添加到文档库,但我没有选择将其添加到文档库设置 - >从现有网站内容类型添加。我没有看到"文件夹内容类型"在“组”下拉菜单中。此外,如果我将内容类型移动到显示在此下拉列表中的另一个组,则它仍然不会显示。我需要做些什么来使这个内容类型成为我的文档库的选择,或者选择哪些内容类型组可用于网站的地方?

非常感谢

1 个答案:

答案 0 :(得分:2)

如果您创建了自己的内容类型并将其发布/激活到SharePoint,则应该可以将其添加到文档库。请确保您的文档库配置为支持内容类型。

在文档库设置的高级设置部分,选择Yes下的Allow management of content types?然后按原样继续。 设置 - >从现有网站内容类型添加..

您可以使用控制台应用程序(参考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();
    }
}