Custom Content type Programmatically
HI,
I am using sharepoint server 2007 in windows server 2003.
i am successfully created custom content type using MS office templates(using SharePoint GUI). now i want to do below things programmatically (want to know whether it works or not).
1. creating custom content type and assigning a template to it programmatically.
2. using these content types in document library (i have written code and working perfectly).
for the 1st point This Link tells that we can't create content types in SharePoint 2007 but we can in SharePoint 2010,
my question is are their any alternatives????? or links will be sufficient.
for 2nd point , i have created custom content types using SharePoint GUI and
adding them to document library programmatically which works perfectly no prob. in this.
Please suggest me if their is any way to create custom content type programmatically.
Regards,
Jithendra.
I hope you are looking for this
http://www.dotnetspark.com/kb/3776-creating-list-programmatically-with-custom.aspx
namespace customl.Customlist
[ToolboxItemAttribute(false)]
public class Customlist : WebPart
Button btn;
protected override void CreateChildControls()
base.CreateChildControls();
btn = new Button();
btn.Text = "show";
btn.Click += new EventHandler(btn_Click);
Controls.Add(btn);
void btn_Click(object sender, EventArgs e)
try
SPWeb web = SPContext.Current.Web;
web.AllowUnsafeUpdates = true;
SPListTemplateCollection listTemplates = site.GetCustomListTemplates(mySite);
SPListTemplate template = listTemplates["Enter template name here"];
Guid listId = web.Lists.Add("checkcustomlist", "The new custom list", template);
SPList list = web.Lists[listId];
web.AllowUnsafeUpdates = false;
catch (Exception ex)
Context.Response.Output.Write("Error (btn_Click): " + ex.Message.ToString());
protected override void Render(HtmlTextWriter writer)
base.Render(writer);
Similar Messages
-
Can I add Custom Content Type created programmatically to Custom List Definition?
I have created Custom content type programmatically in the Feature Receiver. Followed by this have another feature which creates List Template. I want to add the custom content type to the list template.
Using VS 2012, I added the custom content type to the list definition. The Schema.xml for the list definition looks as below:
<ContentTypes>
<ContentTypeRef ID="0x010100D7D9F4B1F4A9684BB44389571024B2EC00C393BB21B8AD7B41B62A87DF0501504D" />
</ContentTypes>
ID was automatically added by the VS tool.
List Template is created, the new content Type is also added, but the Name is displayed as "Document" instead of the custom content type name. So I see two CTs with the name "Document".
How can I achieve this? Any help is appreciated.Hi,
Please add EnableContentTypes="TRUE" in the <List > tag.
The following materials would be helpful:
How to add custom content type to a custom list
http://innersharepoint.blogspot.de/2009/10/how-to-add-custom-content-type-to.html
SharePoint Custom List Definition with Content Type
https://achrafsp.wordpress.com/2013/03/31/sharepoint-list-definition-with-content-type/
Create a Custom SharePoint List Definition
http://www.mssharepointtips.com/tip.asp?id=1188
Best Regards
Dennis Guo
TechNet Community Support -
Required field in custom content type not required in custom list instance
I have an issue with a custom SharePoint 2013 solution. Among other components, it consists of:
a feature with several custom fields with different types, some of which are taxonomy fields,
a feature with three custom content types using different sets of the custom fields with partially different configuration, e.g. whether they are required or not,
a feature with a custom document library template and instance using two of the custom content types and a default picture library that is programmatically customized when the feature is activated, e.g. it is assigned the third custom content type.
When deploying the solution and activating the feature, everything is set up correctly except a single taxonomy field for one of the doc lib's content types. It is defined to be required in both content types but indeed it does not show up as required for
the default content type whereas everything works fine for the other. And it does not matter which of the two custom content types is defined first (= default) in the list template's schema.xml, the issue always occurs for the same taxonomy field in the doc
lib's default content type. When I use the built-in Document content type as default, the field is required for both custom content types. However, using the Document content type is not an option.
If you think this behavior is not strange enough: When the list content type's field is set required through the SharePoint UI, it becomes optional again when the list column is updated, e.g. its display name is changed.
Any ideas?Hi,
Thank you for your question.
We are currently looking into this issue and will give you an update as soon as possible.
Thank you for your understanding and support.
Linda Li
Forum Support
Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
[email protected]
Linda Li
TechNet Community Support -
SharePoint 2013 Custom Content Type with Site Column custom validations
Hello,
Can somebody please suggest me how I can create custom content type with site columns with custom validation to site columns programmatically?
Thanks,
Praveen Kumar PadmakaranHi,
From your description, my understanding is that you want to create content type with site column with validation.
You could create a site column, and add some validation to the site column. After you could create a custom content type, please add the site column with validation to the content type. Please refer
to this code below:
static void Main(string[] args)
// replace your url
using (SPSite site = new SPSite("http://sp/sites/sp2013"))
using (SPWeb web = site.OpenWeb())
//define the type of the field
SPFieldType type = SPFieldType.Number;
// create a site column
SPField field = CreateSiteColumn(web, "newTest", type, "");
// add custom formula for the field
SPFieldNumber fieldNumber = web.Fields.GetField("newTest") as SPFieldNumber;
fieldNumber.ValidationFormula = "=[newTest]>5";
fieldNumber.ValidationMessage = ">5";
fieldNumber.Update();
SPContentTypeId parentItemCTypeId = web.ContentTypes[0].Id;
// create custom content type
SPContentType contentType = CreateSiteContentType(web, "newContent", parentItemCTypeId, "Custom Content Types");
// add the site column to the content type
AddFieldToContentType(web, contentType, field);
// add fiedl to contenttype
public static void AddFieldToContentType(SPWeb web, SPContentType contentType, SPField field)
if (contentType == null) return;
if (contentType.Fields.ContainsField(field.Title)) return;
SPFieldLink fieldLink = new SPFieldLink(field);
contentType.FieldLinks.Add(fieldLink);
contentType.Update();
// create a custom content type
public static SPContentType CreateSiteContentType(SPWeb web, string contentTypeName,SPContentTypeId parentItemCTypeId, string group)
if (web.AvailableContentTypes[contentTypeName] == null)
SPContentType itemCType = web.AvailableContentTypes[parentItemCTypeId];
SPContentType contentType =
new SPContentType(itemCType, web.ContentTypes, contentTypeName) { Group = @group };
web.ContentTypes.Add(contentType);
contentType.Update();
return contentType;
return web.ContentTypes[contentTypeName];
// create a site column
public static SPField CreateSiteColumn(SPWeb web, string displayName,SPFieldType fieldType, string groupDescriptor)
if (!web.Fields.ContainsField(displayName))
string fieldName = web.Fields.Add(displayName, fieldType, false);
SPField field = web.Fields.GetFieldByInternalName(fieldName);
field.Group = groupDescriptor;
field.Update();
return field;
return web.Fields[displayName];
You could refer to these articles:
C# code to create Site Column, Content Type, and add fields to Content Type
http://spshare.blogspot.jp/2013/10/c-code-to-create-site-column-content.html
How to do custom validation for site column in SharePoint
http://www.c-sharpcorner.com/uploadfile/anavijai/how-to-do-custom-validation-for-site-column-in-sharepoint/
Best Regards,
Vincent Han
TechNet Community Support
Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact
[email protected]. -
How to use custom aspx page as template for custom content type
Hi,
I have created custom content type and custom aspx page. I want to use aspx page as template for custom content type.
Can anybody please let me know how to accomplish this?
Any help would be appreciated.
Thank you,
AA.Check if you are looking for the below
http://www.sharepointpals.com/post/How-to-Create-a-Page-Layout-(PageLayout)-with-ContentType-in-SharePoint-2013
Please remember to click 'Mark as Answer' on the answer if it helps you -
Cannot get rid of default field in a custom content type
hi guys,
I have custom content type based on Document Set in a List based on Document Library. I created both using XML declaration in SP solution.
I have all fields in my content type which I declared, except to defult fields: 'Name' and 'Description'. I need to hide both of them. After I set Inherits="FALSE" in ContentType section in Elements.xml in ContentType description the field
'Description' goes away. But the field 'Name' marked as required and stays.
I've also tried to add RemoveFieldRef parameter to the same Elements file, but the field persists. I assume it comes from list definition, not content type. But I cannot figure out how to get this field out from list definition.
Do I miss something?I am assuming that content type's elements.xml file is looking like this
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<!-- Parent ContentType: Document Set (0x0120D520) -->
<ContentType ID="0x0120D520008d2ff418027e4c31b54d155b98596748"
Overwrite="True"
Name="Custom Dossier"
Group="Custom group"
Description="Custom dossier"
Inherits="True"
Version="0">
<FieldRefs>
<FieldRef
ID="{8D6C094C-3E1F-41f4-BEE3-25B27EE09702}"
Name="Dossier_Nummer"
DisplayName="Dossiernummer"
Required="True"
/>
</FieldRefs>
<XmlDocuments>
<XmlDocument NamespaceURI="http://schemas.microsoft.com/office/documentsets/allowedcontenttypes">
<act:AllowedContentTypes
xmlns:act="http://schemas.microsoft.com/office/documentsets/allowedcontenttypes"
LastModified="05/31/2012 08:46:56">
<AllowedContentType
id="0x0101"
/>
<AllowedContentType
id="0x0101000490d50c50624b6ca21c637ef39cd89b"
/>
</act:AllowedContentTypes>
</XmlDocument>
</XmlDocuments>
</ContentType>
</Elements>
In the FieldRef section ,we have <FieldRef
ID="{8D6C094C-3E1F-41f4-BEE3-25B27EE09702}"
Name="Dossier_Nummer"
DisplayName="Dossiernummer"
Required="True"
/> this field is there.
Try to add ShowInNewForm="TRUE" ShowInEditForm="FALSE" those attributes.
or Hidden="FALSE"
Sorry for the bad English. Could you paste your code.So that we can assist u. -
i am getting "could not save list changes to the server" while creating a new form in SharePoint Designer.
Actually the list was created with a custom content type. When i try to create a new form from the custom content type, it fails.
However, when i try to create a form using item content type, it creates a form successfully.
Could you please let me know hte workaroud for this.
TnxHello,
This link may be help you to create custom form using content types:
http://blog.splibrarian.com/2011/03/21/using-content-types-to-modify-the-newform-aspx-and-editform-aspx-pages/
Hemendra:Yesterday is just a memory,Tomorrow we may never see<br/> Please remember to mark the replies as answers if they help and unmark them if they provide no help <br/>(On vacation from 16th Oct to 28th Oct 2014) -
Dear SharePoint Developers,
Please help.
I need to know How to set the column order of a sealed column in a custom Content Type for the new item form NewDocSet.aspx?
I think this is a "sealed column", whatever that is, which is shown in SPD 2013 as a column of content type "document, folder, MyCustomContentType".
I know when I set the column order in my custom Content Type settings page, it is correct.
But, when I load the NewDocSet.aspx page, the column order that I set in the settings page is NOT used for this "sealed column" which is bad.
Can you help?
Please advise.
Thanks.
Mark Kamoski
-- Mark KamoskiHi,
According to your post, my understanding is that you want to set the column order of a sealed column in a custom Content Type for the new item form NewDocSet.aspx.
Per my knowledge, if you have Content Type management enabled for the list or library (if you see a list of content type with the option to add more), the display order of columns is set for each content type.
Drill down into one of them and you'll see the option under the list of columns for that content type.
To apply the column order in the NewDocSet.aspx page, you need to:
Select Site Settings, under Site Collection Administration, click Content type publishing. In the Refresh All Published
Content Types section, choose Refresh all published content types on next
update.
Run two timer jobs(Content Type Hub, Content Type Subscriber) in central admin(Central Administration--> Monitoring--> Review timer jobs).
More information:
http://sharepoint.stackexchange.com/questions/95028/content-types-not-refreshing-on-sp-online
Best Regards,
Linda Li
Linda Li
TechNet Community Support -
Adobe Drive and Alfresco Enterprise Fails to Check-in With Custom Content Types
Hello all,
I've been struggling with some drive limitations over the last few weeks as we try to utilize the CMIS connector to Alfresco. I am currently testing with Adobe Drive 3.2.0.41 and Alfresco 4.0.1 Enterprise but have tested this behavior with Drive 4.0.2.6 paired with Alfresco 4.1.1.3 and seen the same behavior:
The issue I am seeing is that I am unable to Check in a new document into the repository when there is a rule set up to apply a custom content type from our model. After entering my check-in comment and pressing OK, I get an unknown error from Bridge, InDesign, or Photoshop. It works fine if I do not specialize our type with a rule (leaving the content as cm:content). The error I recieve in Alfresco is: org.alfresco.service.cmr.repository.CopyServiceException: The source and destination node must be the same type.
I understand that this might be a limitation of Drive and Alfresco working together, but I just wanted to see if anyone had any experience with this issue or any potential workaround, since it is pretty limiting for alfresco to not have any non OOTB content types.
Thanks, your help would be appreciated.
MikeAdobe Drive CC still has this issue. I can dra-n-drop a .PSD into Alfresco 4.2 and it will work perfectly - unless I use Adobe Drive to edit and check-in the file.
-
Created column not showing in the Document Library View for a Custom Content Type based on Document
We have a custom content type based of Document Content Type. The OOTB "Created" column does not show up in the view as well as in the Site Settings -> Columns.
But it shows up in the Display Form and Edit Form of the Item at the bottom "Created at " by " " and "Modified by" at by ""
Would anyone know how to make this column appear as part of the view ?
thanks,
HarshHi,
They should by default be possible to add to a view. The only reason they would disappear from the UI if someone has changed the attribute of the Field to hidden = true. You can verify that with PowerShell and if so you can use PowerShell to revert the setting
to false.
$w = Get-SPWeb http://dev13$f = $w.Fields.GetFieldByInternalName("Created")$f.Hidden$f.Hidden = $false$f.Update() -
Custom Content type based on "Link to a Document" does not open new folder in a dialog
Hi,
We have created a custom Content Type based on "Link to a Document" (0x01010A) into a document library. When I use the New Document button on the ribbon, the "Link to a document" form appears on the same window, not as a dialog. If we
use the "link to a document" content type it works fine.
This issue occurs when creating the content type from the SharePoint UI as well as via XML (provisioning the content type).
Is it a SharePoint bug or are we missing something?
Thanks!
SergioHi S3rgiones,
I can reproduce your issue, when create a custom content type based on “Link to a Document” content type, create item using the content type, it will open the NewLink.aspx page in the same window not the modal dialog.
In this situation, you can try to custom the content type and customize the form page for it, specify it in the content type customization, if this doesn’t work, you may need to custom the content type not inherit from the default link to
a document, but customize it yourself.
Thanks,
Qiao Wei
TechNet Community Support -
Hi,
I am trying to create "View" in a Document Library and need to enable following:
1. Mark as default View
2. Folders -> Show this view : in Folders of Content Type : {Custom Content Type name}
I am using following code which sets "in Folders of Content Type : " to "Folder" rather than selecting custom content type despite passing Content Type ID of custom content type.
code:
var itemContentTypes = clientContext.LoadQuery(web.AvailableContentTypes.Where(ct => ct.Name == viewContentType));
clientContext.ExecuteQuery();
var itemContentType = itemContentTypes.FirstOrDefault();
view.ContentTypeId = itemContentType.Id;
view.DefaultViewForContentType = true;
view.Update();
clientContext.ExecuteQuery();
Please highlight what seems to be missing?
Thanks
SonalHi,
Before you set the content type ID for the view, you need to add the custom content type to the library firstly.
You can add the content type to library using OOTB feature “Add from existing site content types” in library settings or using Client Object Model.
Here is a code snippet for your reference:
var list = context.Web.Lists.GetByTitle(listTitle);
list.ContentTypesEnabled = true;
var contentType = context.Site.RootWeb.ContentTypes.GetById("0x0120");
list.ContentTypes.AddExistingContentType(contentType);
context.ExecuteQuery();
More information about add exist content type using Client Object Model:<o:p></o:p>
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.client.contenttypecollection.addexistingcontenttype%28v=office.15%29.aspx
Best regards,
ZhengyuGuo
Zhengyu Guo
TechNet Community Support -
HELP: Extended Attributes Not Appearing In Instances of Custom Content Type
From Java code I create a custom content type derived from Document and define some extended attributes with default values for that type. All done using the same methodology shown in the Developer's Guide and Oracle example code.
I start ifsmgr and I can indeed see the content type and the extended attributes.
If I however create an instance of this (custom) type, either from the Viewer (file Upload) or from Java code (using code simuilar to createDocument from the Oracle ContentModule example), the extended attributes do not appear!
BUT, if I delete one of the extended attributes using ifsmgr (highlight one of my extened attributes, click on "Remove", and then "Apply"), from that point on the previously missing extended attributes appear (except for the one I deleted of course) when I create files of the custom type from either Java code or the Viewer. Furthermore, once I get ifs to "see" one of these extended attributes in this manner, I can delete the extended attribute and re-create it from Java at will and it will appear in created instances of my custom content type just fine.
If however I add another new extended attribute to the custom content type, I have to do the "Remove/Apply" drill in ifsmgr to get this new attribute to appear in created files of my custom type.
I've tried deleting all instances of the custom type and closing both ifsmgr and the Viewer, but unless I delete one of the extended attributes from ifsmgr I cannot get new extended attributes to appear.
What do I need to do in my 9ifs Java code to get new custom content extended attributes to appear in instances of that custom type?
Thank you,
Jeff "Did Kafka Write ifs?" RiningerDear @user10993347,
As mentioned by @vinod2303, you need to maintain content relationships along with subscriptions.
Regards,
Saurabh -
Displaying Custom Content Types
Short Version
I have created custom content types that has a few properties that are complex. One is an image type and another is a collection of another custom content type. I am unable to display or access these items.
Long Version
I have a custom content type with the following properties
It is called PageThreeColumn
PageTitle : String
LeftNav : String
RightNav : String
HeroImage : image (complext type that came with weblogic)
ContentCollection: Collection of type ContentPlaceholder
The other custom type ContentPlaceHolder
Type : String
HtmlContent : Binary
I created a content presenter view (wlp-templete-config.xml) and I am able to get a simple string property to be displayed.
So I can do the following
<cm:getProperty name="LeftNav" node="${node}"/>
And I get the expected String back.
What I am unable to do is get to anything that is more complicated then the simple datatypes. For instance the Image data type.
I have tried node.HeroImage but it does not display correctly.
I appreciate any help you can give and would definately like a link to an example of displaying content that is not as trivial as most of the examples.I have tried the following code variations
<div>
${node.properties[0]}
<!--//Shows string as expected-->
${node.properties[1]}
<!--//Shows string as expected-->
${node.properties[2]}
<!--//Shows string as expected-->
${node.properties[3]}
<!--//Shows the following
HeroImage: [Lcom.bea.content.Property;@48958a1 -->
${node.properties[4]}
<!--//Shows the following
ContentCollection: [Lcom.bea.content.Property;@48958a5 ,
[Lcom.bea.content.Property;@48958a8 ,
[Lcom.bea.content.Property;@48958ab -->
<cm:getProperty node="${node.HeroImage}" name="heroimage" />
<img src="${templates:getImageSource(pageContext.request, heroimage)}"/>
</div>
Variation 2
<img src="${templates:getImageSource(pageContext.request, node.HeroImage)}"/> //says that it does not recognize node.HeroImage
Variation 3
${node.HeroImage} //says that it does not recognise HeroImage
All dont work.
Should I be adding or doing some type of customization to the template jsp to handle the complex data type?
Is there an example or tutorial that uses a complex content type and the content presenter to show content?
Or maybe an example of more complicated uses of the JSP files in the:
/portlets/wlp/contentpresenter/templates/wlp-default/cm
/portlets/wlp/contentpresenter/templates/wlp-default/outer
All of the examples I found were ver trivial. Basicly showing a very simple example but nothing using a content type that is more complicated in the non-primary properties then strings.
Edited by: danscan1712 on Mar 11, 2009 8:01 AM -
Hi all,
I'm using SharePoint Online, but I'm seeing the same behavior in an on-prem 2013 instance as well. My situation is this:
- I've created a document library
- I've created a custom content type and attached a custom document template to it
- I've assigned the custom content type to the document library, and disabled the default "document" option
What I'm expecting to see is that when I browse to the document library and click "new document", that either a) a picklist appears allowing me to specify the document template I want (using the custom template I specified) or b) open the custom
template itself. That doesn't happen - instead, when I click new document I'm prompted to upload a file, which seems to contradict the whole point of using a custom content type/custom document template combo.
Am I missing something? The custom template isn't in the Forms library, which seems to be a problem if I wanted to use the custom document template instead of the default.
Ideally I'd like a menu like the one shown here:
http://social.msdn.microsoft.com/Forums/en-US/59ce3bd8-bf7f-4872-ae76-60d8c81dfc32/display-content-types-on-new-document-button-in-document-libraries?forum=sharepointgeneral, except with me being able to control the list of items that is shown.
Any ideas? Thanks!Hi Brain,
What you have done is by design behavior.
If you want to show the Office document templates list (e.g. below image from your above referenced link) to select when click "+new document" link, this will need to install Office Web App 2013 which provides this feature,
you can new document and see it is using WopiFrame.aspx page, please see more from below article about how to configure OWA 2013 for SharePoint 2013 on-premise.
http://technet.microsoft.com/en-us/library/ff431687(v=office.15).aspx
Thanks,
Daniel Yang
Forum Support
Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact [email protected]
Daniel Yang
TechNet Community Support
Maybe you are looking for
-
My iPad2 crashed while in itunes
My ipad2 crashed while in itunes. It will not do a thing now. When I turn it on, all that comes on the screen is an image of a USB cord, with an arrow at the tip of it pointing to an itunes icon. I've tried resetting by holding the home and sleep but
-
Aperture Size Over 300GB, is this too big
Greetings, I have a library a little over 300 GB in size, and growing. I am about to upgrade to Aperture 3, but am scared because if anything happens to this file, I am toast, (all of my family pictures there). I know there are a trillion discussions
-
Post-capitalization vs subsequent acquisitions
Hello everybody What´s exactly the difference between Post capitalizations and subsequent acquisitions? According to what I´ve read Post capitalizations are for closed fiscal years. When I´m choosing the Original Value date (ABNAN) the system sends a
-
How do i perform a check to see if there are any logged-in resources before the caller is placed into queue. The need is to prevent callers from being placed into queue in case the company is closed during what would normally be open hours.
-
Which driver will enable wireless adapter on my notebook
I recently purchased hp 15 notebook r204tu I am confused about which driver should I use for wireless internet access .When you go on hp website for drivers they have given 7 drivers I donot know which one would work please can any provide link to th