Skip to main content

Manage Content Types on New Button


SharePoint Lists are enabled with multiple content types, because of that we can add items with different type of properties and documents. In advanced, the New Menu displays those Content type available in List as its sub-menu.



Fig1 Content Types Visible in New Menu

So how the SharePoint displays those Content types under New menu and how we can enable and disable those content types under that new Menu.

So here is the simple snippet to list out the content types enabled in New Menu.

SPList list = web.Lists["ListName"];

IList<SPContentType> ctoFolder = list.RootFolder.UniqueContentTypeOrder;

foreach (SPContentType ctype in ctoFolder)
{
    Console.WriteLine(ctype.Name);
}

UniqueContentTypeOrder of SPFolder member lists out the Content Types visible on New Menu. Now we’ll see the code for removing the ContentType on New menu.

SPList list = web.Lists["ListName"];

IList<SPContentType> ctoFolder = list.RootFolder.UniqueContentTypeOrder;

//Code for removing the Content Type sub-menu in New Menu.

//Removing the "Test Content Type" menu under New Menu

for (int i = ctoFolder.Count – 1; i >= 0; i–)
{
    if (ctoFolder[i].Name == "Test Content Type")
    {
        ctoFolder.Remove(ctoFolder[i]);                          
    }                      
}

list.RootFolder.UniqueContentTypeOrder = ctoFolder;
list.RootFolder.Update();

//Code for adding the Content type sub-menu under New Menu

//Adding the "Test Content type" menu under New Menu

SPContentType ctype = list.ContentTypes["Test Content Type"];                                      
ctoFolder.Add(ctype);
list.RootFolder.Update();

The above helps us to enable and disable the Content type on New Button in SharePoint List

Comments

Popular posts from this blog

SharePoint Game Webpart

http://spgameoflifewebpart.codeplex.com/ Goal: The Game of Life web part was created for a talk I presented at SharePoint Saturday New York in 2009. At the time, SharePoint 2010 was still in Beta and most people hadn't see the Enterprise Metadata Management (taxonomy) features. I used the Game of Life web part as an introduction to the new taxonomy API. I offered to provide the code, so here it is. Requirements ----------------------- - SharePoint Server 2010 with Enterprise Features - Visual Studio 2010 (inc. SharePoint tools) Setup ----------------------- 1. Add your account as a Term Store Administrator. This right is independent to Site Collection Administrator or Farm Administrator status. To open the Term Store Management Tool go to Site Actions > Site Settings > Site Administartion > Term Store Management. You can also  open the same interface from Central Administration > Manage Service Applications > Managed Metadata Service. 2. Run the sol...

CAML Query Helper Class

http://sharepointcamlhelper.codeplex.com/ https://camldotnet.svn.codeplex.com/svn/JohnHolliday.Caml.Net/CAML.cs CAMLManager mgr = new CAMLManager(); mgr.QueryGroups.Add(new QueryGroup("Title", Types.FieldTypes.Text, Types.QueryTypes.Eq, "A Title")); mgr.QueryGroups.Add(new QueryGroup(Types.JoinTypes.Or, "Title", Types.FieldTypes.Text, Types.QueryTypes.Eq, "Another Title")); mgr.QueryGroups.Add(new QueryGroup(Types.JoinTypes.And, QueryGroup.MergeTypes.Contain, "Total", Types.FieldTypes.Number, Types.QueryTypes.Geq, "2")); string caml = mgr.GetCAML(); Will provide the following: <Where>   <And>     <Or>       <Eq>         <FieldRef Name="Title" /><Value Type="Text">A Title</Value>       </Eq>       <Eq>         <FieldRef Name="Title" /><Value Type="Text">Another Title</Value>     ...

Globally Reusable Workflow in SharePoint 2010

http://www.codeproject.com/KB/sharepoint/ReusableWFsSharePoint2010.aspx http://www.khamis.net/blog/Lists/Posts/Post.aspx?ID=18 Video: Publish globally reusable workflows in SharePoint Designer 2010