SharePoint Online: How to Change List to New Experience?
Requirement: Change List experience in SharePoint Online.
How to Set SharePoint Online List to Modern experience?
SharePoint Online new list experience provides a faster and easier user interface to lists and libraries. The modern experience is not only fluid and responsive but also adds new enhancements to the user interface of lists and libraries. You can switch between classic & new experiences in SharePoint online by simply changing the list settings.
To change list or library to the new modern user interface:
- Go to List or Library settings >> Click on "Advanced Settings"
- Scroll down to the bottom, and from "List experience" section, Select "New experience" option and hit OK.
To: New list experience in SharePoint online
How about setting the default option for all New Lists?
To set list experience for new lists, you can specify this option globally using SharePoint Admin Center. Here is how:
- Navigate to your SharePoint Admin Center(typically: https://YOURCOMPANY-admin.sharepoint.com/)
- Click on "Settings" from the Left navigation
- On the Setting page, under "SharePoint list and libraries experience" section, Select the appropriate option, such as : Classic experience or New experience (auto-detect).
PowerShell script to Switch UI experience of a List or Library in SharePoint Online:
On any existing SharePoint online lists and libraries, you can switch the UI experience either using SharePoint web UI method as explained above or with below PowerShell script.
#Load SharePoint CSOM Assemblies Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll" Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" ##Variables for Processing $SiteUrl = "https://crescent.sharepoint.com/sites/sales" $ListName= "Project Documents" $UserName="[email protected]" $Password ="Password goes here" #Setup Credentials to connect $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName,(ConvertTo-SecureString $Password -AsPlainText -Force)) Try { #Set up the context $Context = New-Object Microsoft.SharePoint.Client.ClientContext($SiteUrl) $Context.Credentials = $credentials #Get the document library $List = $Context.web.Lists.GetByTitle($ListName) #Set list properties $List.ListExperienceOptions = "NewExperience" #ClassicExperience or Auto $List.Update() $context.ExecuteQuery() Write-host "UI experience updated for the list!" -ForegroundColor Green } catch { write-host "Error: $($_.Exception.Message)" -foregroundcolor Red }SharePoint Online new experience not working?
In some cases, even after you changed the list experience settings from list settings, you will be still getting the same UI. This is because of the browser cookie! To fix the problem, simply clear your browse cookie and reload the page. (To be specific, the cookie is called "spInu" with a value of 0!)
Change List Experience using PnP PowerShell in SharePoint Online
Let's change the default list experience to "new experience" or "Modern Experience" for a SharePoint Online list.
#Config Variables $SiteURL = "https://crescenttech.sharepoint.com" $ListName = "Team Documents" #Connect to PNP Online Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential) #Set List Experience Set-PnPList -Identity $ListName -ListExperience NewExperience
To get the List experience settings, use:
Get-PnPList -Identity "List Name" -Includes ListExperienceOptionsWhere: 0 = Auto, 1 = modern, 2 = classic
PnP PowerShell to Set List Experience to Modern for All Lists in a Site Collection
Let's set all lists in a site collection to Modern!
#Variable $SiteURL ="https://crescent.sharepoint.com/sites/marketing" #Connect to PnP Online Connect-PnPOnline -URL $SiteURL -UseWebLogin #Get the Root Web $RootWeb = Get-PnPWeb Write-host "Processing Root Web:"$RootWeb.URL -f Yellow #Get All Lists from Root Web and Iterate through $Lists = Get-PnPList -Web $RootWeb ForEach($List in $Lists) { If($List.ListExperienceOptions -ne "NewExperience" -and ($List.Hidden -eq $false)) { #Set List Experience to Modern Write-host "`tSetting List Experience to Modern:"$List.Title Set-PnPList -Identity $List -ListExperience NewExperience } } #Get All Webs in the site collection and Iterate through $Webs = Get-PnPSubWebs -Recurse ForEach($Web in $Webs) { Write-host "Processing Web:"$Web.URL -f Yellow #Get All Lists from web and Iterate through $Lists = Get-PnPList -Web $Web ForEach($List in $Lists) { If($List.ListExperienceOptions -ne "NewExperience" -and ($List.Hidden -eq $false)) { #Set List Experience to Modern Write-host "`tSetting List Experience to Modern:"$List.Title Set-PnPList -Identity $List -Web $Web -ListExperience NewExperience } } }
Why are you using the SiteURL as html syntax and not just the URL? Also I'm getting the following error:
ReplyDeleteException calling "ExecuteQuery" with "0" argument(s): "The sign-in name or password does not match one in the Microsoft account system."
It was caused by a 3rd party plug-in and sorted now. Thanks for notifying, Cheers!
DeleteI Used the same code with Site Admin Permissions, but its not working
ReplyDelete