Creating Lists and updating the default view programatically in SharePoint 2007
Recently a question came across a distribution list that I am a member of about updating the default view through code in SharePoint 2007. Whenever I answer a question like this I try to remember it and blog about it. Hopefully the next time someone is looking for the answer they will search and find this blog entry! So here is a small code sample that creates a list and updates the "All Items" view through code.
private const string MultiLanguageHelloListName = "Multi-Language Hello";
SPSite currentSite = properties.Feature.Parent as SPSite;
SPWeb currentWeb = currentSite.RootWeb;
uint language = currentWeb != null ? currentWeb.Language = 1033;
SPList list = null;
if (!ListExists(currentSite.RootWeb, MultiLanguageHelloListName))
{
Guid listId = currentSite.RootWeb.Lists.Add(MultiLanguageHelloListName,
SPUtility.GetLocalizedString("$Resources:hello,HelloSettingsDesc;", "hello", language),
SPListTemplateType.GenericList);
list = currentSite.RootWeb.Lists[listId];
list.Fields.Add("ToolTip", SPFieldType.Text, true);
SPField tooltip = list.Fields["ToolTip"];
tooltip.ShowInDisplayForm = true;
tooltip.ShowInEditForm = true;
tooltip.ShowInListSettings = true;
tooltip.ShowInNewForm = true;
tooltip.ShowInViewForms = true;
SPView defaultView = list.Views["All Items"];
defaultView.ViewFields.Add(tooltip);
defaultView.Update();
list.ContentTypesEnabled = false;
list.OnQuickLaunch = true;
list.EnableAttachments = false;
list.EnableVersioning = false;
list.NoCrawl = true;
list.Update();
}
The first section of this piece of code verifies that the list doesn't exist, because this piece of code was from a feature receiver in the FeatureActivated event. Next I create the list using currentSite.RootWeb.Lists.Add(<listname>, <list description>, SPListTemplateType). After the creation of the list I go on to add a field called "ToolTip" to the list. I then want to show this field in the deafult view so I get a reference to the "All Items" view and add it to the ViewFields collection. Then update the view and update the list and your done!
Hope this is useful.
Comments
Anonymous
August 26, 2008
Thanks, That worked a treatAnonymous
January 22, 2009
Can i hide create view menu after update default view ?Anonymous
September 14, 2011
The comment has been removedAnonymous
September 14, 2011
sorry - didn't leave my email address on the last post. I'm concerned about finding this again :-) - could you email me with answers? my email address is denzel.mckinney@lexisnexis.com thanks