MOSS 2007 : WSS 3.0 : How do you add a new Site Column to a Content Type using the MOSS object model?
How do you add a new Site Column to a Content Type using the MOSS object model?
Here is the sample code
SPWeb web = new SPSite("https://localhost:4040").OpenWeb();
SPContentType myCT = web.ContentTypes["myNewContentType"];
myCT.FieldLinks.Add(new SPFieldLink(web.Fields["abc"]));
myCT.Update();
Note :
The following MSDN article speaks about “Updating Child Content types”.
https://msdn2.microsoft.com/en-us/library/ms442695.aspx
The example given in the article uses the SPFieldCollection object (SPContentType.Fields) to add columns to the content type. But when we use the sample given in the article we end up with the error message “SPException: This functionality is unavailable for field collections not associated with a list.”. I found that the columns are not added into content type and that are referenced in content type from the following article.
https://msdn2.microsoft.com/en-us/library/aa543526.aspx
Also the above article “How to: Reference a Column in a Content Type” says,
The Fields property returns an SPFieldCollection object. Each SPField in this collection represents a "merged view" of the base column definition and any overwritten properties specified in the column reference in the content type. Because of this, you cannot add columns directly to this collection. Attempting to do so results in an error.
Keep Coding...
Comments
Anonymous
May 22, 2007
How do you add a new Site Column to a Content Type using the MOSS object model? Here is the sample codeAnonymous
June 07, 2007
I recently came across a question whether a site column can be associated with a content type using SharePointAnonymous
February 20, 2012
The comment has been removed