So I've tried to create a list from one of my own list templates that I saved. This should be a really simple task barely worthy of a blog post… Or so I thought.
This is what I did:
Fired up Visual Studio and started to code (first attempt):
using (SPSite sitecollection = new SPSite(http://moss)) { using (SPWeb web = sitecollection.AllWebs["TestSite"]) { SPListTemplateCollection listtempColl = web.ListTemplates; SPListTemplate listTemp = listtempColl["MyOwnSavedList"]; web.Lists.Add("NewlyCreatedList","", listTemp); web.Update(); }}
Now this didn't work, turns out the web.ListTemplates doesn't return ALL ListTemplates… If you want to create a list from a template that you have saved yourself you have to fetch those templates using this code instead:
using (SPSite sitecollection = new SPSite(http://moss)) { using (SPWeb web = sitecollection.AllWebs["TestSite"]) { SPListTemplateCollection listtempColl = sitecollection.GetCustomListTemplates(web); SPListTemplate listTemp = listtempColl["MyOwnSavedList"]; web.Lists.Add("NewlyCreatedList","", listTemp); web.Update(); }}