Create a List in C# Based on Another List in Sharepoint

We can copy a List from one SharePoint site to another using List Template Exporting & PowerShell. In this article we will see the Server Object Model way of doing that.

Classes Involved

The SPList class is the core type involved in this.

Activities Involved

The following are the activities involved in our application.

Step 1

Create a List in a SharePoint site based on the Tasks template and name it as Tasks 1.

List-in-SharePoint-site.jpg

Step 2

Create a console application.

Add a reference to the Microsoft.SharePoint assembly.

Microsoft.SharePoint-assembly.jpg

Set the Build > Platform Taget to Any CPU; see:

Platform-Taget -o-Any-CPU.jpg

Step 3

In the Program.cs add the following code:

class Program

{

    static void Main(string[] args)

    {

        using (SPSite site = new SPSite("http://localhost"))

        {

            using (SPWeb web = site.OpenWeb())

            {

                SPList sourceList = web.Lists["Tasks 1"];

 

                Guid destGuid = web.Lists.Add("Tasks 2", sourceList.Description, sourceList.BaseTemplate);

 

                SPList destList = web.Lists[destGuid];

                destList.OnQuickLaunch = sourceList.OnQuickLaunch;

                destList.Update();

            }

        }

    }

}

The above code performs the following:

  1. Create the SPSite & SPWeb objects
  2. Access the Tasks 1 list
  3. Create a new Tasks 2 list using the Template of first list
  4. Set the Quick Launch property to true
  5. Update the new List
  6. Disposes the SPSite & SPWeb objects

Step 4

View the new List created.

Now you can go back to the SharePoint site and see the new list was created.

View-the-new-List-created.jpg

The SPList server object model contains the BaseTemplate instance property as the List Template. We are creating the new list using this property.

web.Lists.Add("Tasks 2", sourceList.Description, sourceList.BaseTemplate);

References

http://tinyurl.com/sp2010-crlst

Summary

In this article we have explored the Server Object Model of creating List based on another List. The source code is attached along with this article.