Saturday, July 7, 2012

How to Create SharePoint List or Library Programmatically

At times, We may have to create List or Document Libraries programmatically. These code snippets will help to get it done.

Using .Net Object Model (C#)

          using (SPSite site = new SPSite("http://sharepoint"))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    //Create a document library
                    web.Lists.Add("Project Docs", "Library for Storing Project Documents", SPListTemplateType.DocumentLibrary);

                    //Create a Link List
                    web.Lists.Add("Portal Links", "Links to Portal Resources", SPListTemplateType.Links);
                    //SPListTemplateType.Links can be: SPListTemplate AssetTemplate = web.ListTemplates["Links"];


                    //Create a List based on Custom List template
                    SPListTemplateCollection CustomListTemplates = site.GetCustomListTemplates(web);
                    SPListTemplate TrainingTemplate = CustomListTemplates["Training List Template"];
                    web.Lists.Add("Project Links", "Links to project artifacts", TrainingTemplate);

                    //Set the Show in Quick Lanuch Property
                    SPList ProjectLinks = web.Lists["Project Links"];
                    ProjectLinks.OnQuickLaunch = true;

                    // Add new column to the List
                    ProjectLinks.Fields.Add("Link Description", SPFieldType.Text,true);
                    ProjectLinks.Update();

                        // If the "Notes"  Rich Text Field field, if is not in the List already!
            SPFieldCollection fields = ProjectLinks.Fields;
                if (!fields.ContainsField("Notes"))
                {
                    //Add Notes field Rich Text Field
                    SPFieldMultiLineText oFldNotes = (SPFieldMultiLineText)CaseNotes.Fields[CaseNotes.Fields.Add("Notes", SPFieldType.Note, true)];
                    oFldNotes.RichText = true;
                    oFldNotes.RichTextMode = SPRichTextMode.FullHtml;
                    oFldNotes.Update();
                    //Update the List
                    ProjectLinks.Update();
                }

               }
           }

For all available List template types, Refer: SPListTemplateType


Create SharePoint List using PowerShell:


Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue 
$site = Get-SPSite -Identity "http://sharepoint"
$web= $site.OpenWeb()

#Create a Link List
$LinkTemplate = $web.ListTemplates["Links"];
$web.Lists.Add("Support Links", "Links to Portal support", $LinkTemplate);
#$LinkTemplate can be: $LinkTemplate = [Microsoft.SharePoint.SPListTemplateType]::Links

#set Quick lanuch option
$SupportLinkList = $web.Lists["Support Links"]
$SupportLinkList.OnQuickLaunch = $true
#Add new Field
$spFieldType = [Microsoft.SharePoint.SPFieldType]::Text
$SupportLinkList.Fields.Add("Link Description",$spFieldType,$true)
$SupportLinkList.update()

#Create a List based on Custom List template
$CustomListTemplates = $site.GetCustomListTemplates($web)
$web.Lists.Add("Project Links", "Links to project artifacts", $CustomListTemplates["Training List Template"])

$web.Dispose()
$site.dispose()



You might also like:
SharePoint Usage Reports
Usage reports, collaboration and audit for SharePoint.
Document SharePoint Farm
Automatically generate SharePoint documentation.
*Sponsored


Check out these SharePoint products:

2 comments :

  1. Hi ,
    Can anyone please tell me what is SPSite here.

    Thanks,
    Manoj

    ReplyDelete
    Replies
    1. Manoj,
      SPSite is the Class/Object for handling SharePoint "Site Collection" programmatically. You can Retrieve/Manipulate Site collection objects with SPSite.

      Delete

Please Login and comment to get your questions answered!

You might also like:

Related Posts Plugin for WordPress, Blogger...