As you know "Title" field is a built-in column that is gets created automatically in every SharePoint list, and If I tried to hide that field ("Title" column) by modifying the Item default content type e.g. (http://sympmarc.com/2009/04/21/hiding-the-title-column-in-a-sharepoint-list/), then, "Title" field will be hidden and disappear from all the lists.

Precisely and concisely, My client's problem is that they have so many lists e.g. (300 Lists), and they need the "Title" field to be shown only for 50 lists, But for the other 250 lists, they want the "Title" field to be hidden and not showing up.

So, How to accomplish that? I mean, How to make "Title" column hidden for some lists and available for others.... Of course, I am looking for good tips/workarounds without so much of manual work (Configuring the list one by one) ?

3 Answers 3


The recomanded way would be to create your own solution containing List definitions which hide the Title field via To remove it:

<RemoveFieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" />

or rename it

<FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" DisplayName="New Name" />

You don't really provide enough details about the differences among your 300 lists (including whether they already exist or not) to answer the question. So here are some assumptions that I am making:

  • The lists don't yet exist
  • There are only a few types of lists that need to be created.

So first you can make a custom content type derived from list item and put in whatever columns you want. Your custom content type does not even need to have a Title column. You can then allow management of content types in list advanced options, add you new content type and remove the old content type (Item). And no more Title.
Once you have the list set up the way you want you can save it as a template and then recreate it from the template as many times as needed. This can also be done programmatically and you can search the web for how that can be done.

If the assumptions aren't correct your job is somewhat more complicate and you will need to programmatically modify list settings. Again you can look it up to see how it is done.


You can try setting it via powershell. But you also need to set required to false.

$web = Get-SPWeb "http://yoursite"
$list = $web.Lists["YourList"]
$titleField = $web.Fields["Title"]
$titleField.Hidden = $true
$titleField.Required = $false

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.