Click to Rate and Give Feedback
MSDN
MSDN Library
Web Development
SDK Documentation
SPWeb Class
SPWeb Properties
 AvailableContentTypes Property

  Switch on low bandwidth view
Community Content
In this section
Statistics Annotations (0)
SPWeb.AvailableContentTypes Property (Microsoft.SharePoint)
Gets the collection of all content types that apply to the current scope, including those of the current Web site, as well as any parent Web sites.

Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint (in microsoft.sharepoint.dll)
Visual Basic (Declaration)
Public ReadOnly Property AvailableContentTypes As SPContentTypeCollection
Visual Basic (Usage)
Dim instance As SPWeb
Dim value As SPContentTypeCollection

value = instance.AvailableContentTypes
C#
public SPContentTypeCollection AvailableContentTypes { get; }

Property Value

An SPContentTypeCollection object that represents the content types.

You can apply any content type that is returned in this collection to lists in the current Web site. However, you cannot add content types to the collection that is returned in this property. It is a read-only property.

If you want to make a new content type available, you must add it to the collection that is returned by the ContentTypes property. That collection includes only the content types that exist in the current Web site.

The following example shows a console application that gets a content type from the collection that is returned by the AvailableContentTypes property, and then applies it to a list in the current Web site.

Visual Basic
Imports System
Imports Microsoft.SharePoint

Module ConsoleApp
   Sub Main()
      Using site As SPSite = New SPSite("http://siteUrl")
         Using web As SPWeb = site.OpenWeb()

            ' Get a content type
            Dim ct As SPContentType = web.AvailableContentTypes(SPBuiltInContentTypeId.Document)

            If ct IsNot Nothing Then ' We have a content type

               Try ' Get a list
                  Dim list As SPList = web.Lists("Test List") ' Throws exception if does not exist

                  ' Make sure we can add content types
                  list.ContentTypesEnabled = True

                  ' Add the content type to the list
                  If Not list.IsContentTypeAllowed(ct) Then
                     Console.WriteLine("The {0} content type is not allowed on the {1} list", _
                                       ct.Name, list.Title)
                  ElseIf list.ContentTypes(ct.Name) IsNot Nothing Then
                     Console.WriteLine("The content type name {0} is already in use on the {1} list", _
                                       ct.Name, list.Title)
                  Else
                     list.ContentTypes.Add(ct)
                  End If

               Catch ex As ArgumentException ' No list
                  Console.WriteLine("The list does not exist.")
               End Try

            Else ' No content type
               Console.WriteLine("The content type is not available in this site.")
            End If

         End Using
      End Using
      Console.Write(vbCrLf + "Press ENTER to continue...")
      Console.ReadLine()
   End Sub
End Module
C#
using System;
using Microsoft.SharePoint;

namespace Test
{
   class ConsoleApp
   {
      static void Main(string[] args)
      {
         using (SPSite site = new SPSite("http://siteUrl"))
         {
            using (SPWeb web = site.OpenWeb())
            {
               // Get a content type
               SPContentType ct = web.AvailableContentTypes[SPBuiltInContentTypeId.Document];

               if (ct != null) // We have a content type
               {
                  try // Get a list
                  {
                     SPList list = web.Lists["Test List"]; // Throws exception if does not exist

                     // Make sure we can add 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
                  {
                     Console.WriteLine("The list does not exist.");
                  }
               }
               else // No content type
               {
                  Console.WriteLine("The content type is not available in this site.");
               }
            }
         }
         Console.Write("\nPress ENTER to continue...");
         Console.ReadLine();
      }
   }
}
Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
Processing
© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker