Latest Posts

Set List Content Type Columns Order in SharePoint using CSOM

The example in this topic show how to use CSOM to Set List Content Type Columns Order in SharePoint
  • Please follow the steps below to execute the code in Visual Studio using Console Application. You can customize the solution according to your requirements.
  • Check the article to Connect to SharePoint context using CSOM. This is very helpful if you are doing any programming in CSOM.
  • Don't forget to use the assemblies as mentioned in the code.

How to run CSOM code in SharePoint?

  • Open your Visual Studio.
  • From the template, select Console Application as shown in the screenshot
  • Select the .Net Framework version from the top drop-down as well. You can also change the .Net Framework after creating the solution.
  • Enter Project Name, Location and Solution Name and click on OK.
  • create console application using Visual Studio
  • Now your program.cs file will open. Copy the code in main function.
  • Once you are done with your code, just hit F5 or Run the application.

  • using Microsoft.SharePoint.Client;
  • using System.Linq;
  •  
  • using (ClientContext clientContext = new ClientContext("http://MyServer/sites/MySiteCollection"))
  • {
  • // clientcontext.Web.Lists.GetById - This option also can be used to get the list using List GUID
  • // This value is NOT List internal name
  • List targetList = clientContext.Web.Lists.GetByTitle("a b");
  •  
  • clientContext.Load(targetList.ContentTypes);
  • clientContext.ExecuteQuery();
  • ContentTypeCollection contentTypeCollection = targetList.ContentTypes;
  •  
  • // Mention Target Content Tye Name here
  • ContentType contentTypeOrder = (from contentType in contentTypeCollection where contentType.Name == "Event" select contentType).FirstOrDefault();
  •  
  • // Code to set Content type columns order.
  • if (contentTypeOrder != null)
  • {
  • // enter columns name with comma separated(,) in order you want them in List content type
  • string[] columnsTitle = "Category,Description".Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
  • List<string> internalColumnNames = new List<string>();
  • Field field = null;
  • clientContext.Load(contentTypeOrder.Fields);
  • clientContext.ExecuteQuery();
  • foreach (string title in columnsTitle)
  • {
  • field = (from fieldObject in contentTypeOrder.Fields
  • where fieldObject.Title == title || fieldObject.InternalName == title
  • select fieldObject).FirstOrDefault();
  • internalColumnNames.Add(field.InternalName);
  • }
  •  
  • contentTypeOrder.FieldLinks.Reorder(internalColumnNames.ToArray());
  •  
  • // UpdateChildren - bool, this value indicates whether the children content type(inheriting from this Content Type) needs to be updated
  • contentTypeOrder.Update(false);
  • targetList.Update();
  • clientContext.ExecuteQuery();
  •  
  • }
  • }

Thank you for reading this article. This code was tested in SharePoint 2013

We value your Feedback:

Page URL:

Name:

Email:


Suggestion:

© 2024 Code SharePoint