Search This Blog

Monday, April 25, 2011

Dynamically Creating Sharepoint Content Type

In a scenario where you need to create Content Type in bunch, there comes the role of Dynamic Content types.

The following code snippet helps you in creating content type dynamically.


using System;using Microsoft.SharePoint;
namespace DynamicContentTypeConsole{ class Program { static void Main(string[] args) { string siteURL = "URL of Site"; using (SPSite objSPSite = new SPSite(siteURL))
using (SPWeb objSPWeb = objSPSite.OpenWeb()) { SPContentType objSPContentType = new SPContentType(
objSPWeb.ContentTypes, "Dynamic Content Type");
// A Required Field // Create Site Column objSPWeb.Fields.Add("Dynamic Number Column", SPFieldType.Number, true);
SPFieldLink objSPFieldLink1 = new SPFieldLink(objSPWeb.Fields["Dynamic Number Column"]); objSPContentType.FieldLinks.Add(objSPFieldLink1);
// A required String Field // Create Site Column objSPWeb.Fields.Add("Dynamic String Column", SPFieldType.Text, true);
SPFieldLink objSPFieldLink2 = new SPFieldLink(objSPWeb.Fields["Dynamic String Column"]);
//A non-required Choice Field // Create Site Column objSPWeb.Fields.Add("Dynamic Choice Column", SPFieldType.Choice, false);
SPFieldChoice choicefield = (SPFieldChoice)objSPWeb.Fields["Dynamic Choice Column"];
// Add a group to the filed choicefield.Group = "Dynamic Group";
// Add choices choicefield.Choices.Add(string.Empty); choicefield.Choices.Add("Yes"); choicefield.Choices.Add("No");
// Set the default choice choicefield.DefaultValue = string.Empty; choicefield.Update();
SPFieldLink objSPFieldLink3 = new SPFieldLink(choicefield); objSPContentType.FieldLinks.Add(objSPFieldLink3);
objSPWeb.Fields.AddLookup("Dynamic Lookup Column", new Guid("GUIDofRemoteList"), false);
SPFieldLookup lookupfield = (SPFieldLookup)objSPWeb.Fields["Dynamic Lookup Column"];
// Set the remote field lookupfield.LookupField = "RemoteFieldName"; lookupfield.Update(); SPFieldLink objSPFieldLink4 = new SPFieldLink(lookupfield); objSPContentType.FieldLinks.Add(objSPFieldLink4);
objSPWeb.ContentTypes.Add(objSPContentType); objSPContentType.Update(); } } } }}

The code snippet is the Console Application, and is ready to use.

1 comment: