You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/solution-guidance/modern-experience-customizations-customize-lists-and-libraries.md
+49-36Lines changed: 49 additions & 36 deletions
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
title: Customizing "modern" lists and libraries
3
-
description: Customize user actions, branding, configuring end user experience.
3
+
description: Get a faster, more intuitive, and responsive SharePoint Online experience by customizing your lists and libraries to the "modern" experience using user custom actions and custom branding.
4
4
ms.date: 11/08/2017
5
5
---
6
6
@@ -278,8 +278,9 @@ If you want to completely disable the "modern" experience, it's best to use the
278
278
279
279
### Site/Web level configuration
280
280
You can prevent a site collection or web from using the "modern" experience by enabling a feature:
281
-
- Site collection scoped feature with ID **E3540C7D-6BEA-403C-A224-1A12EAFEE4C4** for site collection control
282
-
- Web scoped feature with ID **52E14B6F-B1BB-4969-B89B-C4FAA56745EF** for web scoped control
281
+
282
+
- For site collection control, use the site collection scoped feature with ID **E3540C7D-6BEA-403C-A224-1A12EAFEE4C4**.
283
+
- For web control, use the web scoped feature with ID **52E14B6F-B1BB-4969-B89B-C4FAA56745EF**.
283
284
284
285
Use the following [PnP PowerShell](http://aka.ms/sppnp-powershell) to enable/disable the needed features:
285
286
@@ -300,11 +301,13 @@ Enable-PnPFeature -Identity E3540C7D-6BEA-403C-A224-1A12EAFEE4C4 -Scope Site
300
301
```
301
302
302
303
### List/Library configuration
303
-
If you want to control the experience at the library level, you can use go to list settings, advanced settings, and change the behavior:
304
+
If you want to control the experience at the library level, you can go to **List settings** > **Advanced settings**, and change the behavior:
305
+
306
+
*Figure 5. List experience configuration in the SharePoint tenant level settings in Admin UI*
304
307
305
-

308
+

306
309
307
-
The same can also be done using CSOM as shown in the below snippet:
310
+
The same can also be done by using CSOM as shown in this snippet:
308
311
309
312
```C#
310
313
// Load the list you want to update
@@ -321,34 +324,40 @@ context.ExecuteQuery();
321
324
```
322
325
323
326
> [!NOTE]
324
-
> - The settings at the library level **override** the settings at the web, site, or tenant level. This also implies that you could pilot the "modern" list and library experience to a sub site of sites by having the "modern" experience turned off at tenant level but enabled at list level on the pilot sites.
325
-
> - When you've manually chosen (so not because of list, site, web or tenant "classic" enforcement) you'll see a link "Exit classic experience" appearing under the left navigation (as of July 2017). Clicking this will bring you back to the "modern" experience.
326
-
> - If you're not able to get the "modern" experience to show up then inspect the cookies being passed to SharePoint as it could be possible that the opt out of "modern" experiences cookie (splnu with value set to 0) is still present. Clearing the browser cookies should get this fixed.
327
-
327
+
> - The settings at the library level *override* the settings at the web, site, or tenant level. This also implies that you could pilot the "modern" list and library experience to a subsite of sites by having the "modern" experience turned off at the tenant level but enabled at the list level on the pilot sites.
328
+
> - When you've manually chosen "classic" (that is, not due to list, site, web, or tenant "classic" enforcement), you'll see the link **Exit classic experience** appearing under the left navigation (as of July 2017). Selecting this brings you back to the "modern" experience.
329
+
> - If you're not able to get the "modern" experience to appear, inspect the cookies being passed to SharePoint because it is possible that the opt out of "modern" experiences cookie (splnu with value set to 0) is still present. Clearing the browser cookies should fix this.
328
330
329
-
## When does the built-in auto-detect automatically switch rendering back to "classic"?
330
331
<aname="autodetect"> </a>
331
-
SharePoint will use an auto-detect system to automatically switch the rendering of a list to "classic" assuming you've not disabled the "modern" experience for your list using either the site, web, or list scoped overrides explained in the previous chapter. This auto-detect system will automatically switch you back to "classic" whenever SharePoint detects your list is using features which are not (yet) supported in "modern".
332
-
333
-
Below are the settings that are evaluated as part of the auto-detect system and which make the list render in "classic" mode:
334
-
- If the requested list form page has zero or more than 1 web part on it
335
-
-**Until July 2017**: If the Web scoped feature "Metadata Navigation and Filtering" is enabled. We're rolling out managed metadata navigation support for "modern" lists and libraries as explained here: https://techcommunity.microsoft.com/t5/SharePoint-Blog/SharePoint-filters-pane-updates-filtering-and-metadata/ba-p/74162
336
-
- If the available webpart is an **XSLTListViewWebPart** (default way to render the list) and:
337
-
- There's a non standard JSLink or XslLink value set for the web part properties
338
-
- The page is shown in a dialog (IsDlg=1)
339
-
- The list is not based on one of the following types: Document library (101), Picture library (109), Web page library (119) or Generic list (100). **As of August 2017** also Announcements (104) and Links (103) do render using the "modern" UI.
340
-
- The JSLink property is set on one of the fields to render
341
-
- One of the fields to render is of type "BCS external data", "Geolocation", "OutcomeChoice" or one of these publishing field types "Image", "Html", or "SummaryLinks"
342
-
- There are list scoped user custom actions which have their ScriptSrc property set
343
-
- If the available webpart is a **ListFormWebPart** and:
344
-
- The page is shown in a dialog (IsDlg=1)
345
-
- It's a "New" form page for a document library
346
-
- The fields to render are not any of these supported types (Attachments, TaxonomyField, Boolean, Choice, Currency, DateTime, File, Lookup, MultiChoice, MultiLine except when Append with versioning is on, Number, Text, User, or Url)
332
+
## When does the built-in auto-detect automatically switch rendering back to "classic"?
333
+
334
+
SharePoint uses an auto-detect system to automatically switch the rendering of a list to "classic", assuming that you do not disable the "modern" experience for your list by using the site, web, or list scoped overrides explained in the previous section. This auto-detect system automatically switches you back to "classic" whenever SharePoint detects that your list is using features that are not (yet) supported in "modern".
335
+
336
+
Following are the settings that are evaluated as part of the auto-detect system and which make the list render in "classic" mode:
337
+
338
+
- If the requested list form page has zero or more than one web part on it.
339
+
340
+
- (**Until July 2017**) If the web scoped feature "Metadata Navigation and Filtering" is enabled. We're [rolling out managed metadata navigation support for "modern" lists and libraries](https://techcommunity.microsoft.com/t5/SharePoint-Blog/SharePoint-filters-pane-updates-filtering-and-metadata/ba-p/74162).
341
+
342
+
- If the available web part is an **XSLTListViewWebPart** (default way to render the list) and:
343
+
- There's a non-standard JSLink or XslLink value set for the web part properties.
344
+
- The page is shown in a dialog (IsDlg=1).
345
+
- The list is not based on one of the following types: Document library (101), Picture library (109), Web page library (119), or Generic list (100). **As of August 2017**, Announcements (104) and Links (103) do render using the "modern" UI.
346
+
- The JSLink property is set on one of the fields to render.
347
+
- One of the fields to render is of type **BCS external data**, **Geolocation**, **OutcomeChoice**, or one of these publishing field types **Image**, **Html**, or **SummaryLinks**.
348
+
- There are list scoped user custom actions that have their ScriptSrc property set.
349
+
350
+
- If the available web part is a **ListFormWebPart** and:
351
+
- The page is shown in a dialog (IsDlg=1).
352
+
- It's a "New" form page for a document library.
353
+
- The fields to render are not any of these supported types: **Attachments**, **TaxonomyField**, **Boolean**, **Choice**, **Currency**, **DateTime**, **File**, **Lookup**, **MultiChoice**, **MultiLine** except when Append with versioning is on, **Number**, **Text**, **User**, or **Url**.
347
354
348
355
### Programmatically detect if your library/list will be shown using "modern" or "classic"
349
-
The previous chapter explained the reasoning behind our auto-detect mechanism, but luckily there's an easy way for you as a developer to understand how a library/list will be rendered. Getting this information is as simple as getting the value of the **PageRenderType** file property which you can obtain using CSOM or REST. Below samples show how to first load the page rendering the list and then get the **PageRenderType**:
350
356
351
-
*CSOM sample:*
357
+
The previous section explained the reasoning behind our auto-detect mechanism, but luckily there's an easy way for you as a developer to understand how a library/list will be rendered. Getting this information is as simple as getting the value of the **PageRenderType** file property, which you can obtain by using CSOM or REST. The following samples show how to first load the page that is rendering the list, and then get the **PageRenderType**:
358
+
359
+
#### CSOM sample
360
+
352
361
```C#
353
362
using (varcc=newClientContext(siteUrl))
354
363
{
@@ -364,16 +373,20 @@ using (var cc = new ClientContext(siteUrl))
364
373
}
365
374
```
366
375
376
+
<br/>
367
377
368
378
> [!NOTE]
369
379
> The PageRenderType property was introduced in [January 2017 CSOM release (16.1.6112.1200)](https://dev.office.com/blogs/new-sharepoint-csom-version-released-for-Office-365-january-2017).
370
380
371
-
*REST request:*
381
+
<br/>
382
+
383
+
#### REST request
384
+
372
385
```Html
373
386
GET _api/web/getfilebyserverrelativeurl('/sites/dev/ECMTest/Forms/AllItems.aspx')/pageRenderType
374
387
```
375
388
376
-
The REST call will get you integer value which is explained in below table:
389
+
The REST call gets you the integer value, which is explained in the following table.
377
390
378
391
Value | Reason
379
392
:------:|-------
@@ -384,7 +397,7 @@ Value | Reason
384
397
4 | NoSPList
385
398
5 | HasBusinessDataField
386
399
6 | HasTaskOutcomeField
387
-
7 | HasPublishingfield
400
+
7 | HasPublishingField
388
401
8 | HasGeolocationField
389
402
9 | HasCustomActionWithCode
390
403
10 | HasMetadataNavFeature
@@ -407,12 +420,12 @@ Value | Reason
407
420
408
421
## Additional considerations
409
422
410
-
We'll gradually introduce more customization options for "modern" list and library experiences. These will be aligned with the release of additional SharePoint framework capabilities. Currently, there's no exact schedule available, but we'll be updating the "modern" experience articles whenever new capabilities are released.
423
+
We'll gradually introduce more customization options for "modern" list and library experiences. These will be aligned with the release of additional SharePoint Framework capabilities. Currently, there's no exact schedule available, but we'll update the "modern" experience articles whenever new capabilities are released.
411
424
412
425
## Additional resources
413
426
414
427
-[Customizing the "modern" experiences in SharePoint Online](modern-experience-customizations.md)
415
428
-[Switch the default experience for lists or document libraries from new or classic](https://support.office.com/en-us/article/Switch-the-default-experience-for-lists-or-document-libraries-from-new-or-classic-66dac24b-4177-4775-bf50-3d267318caa9)
416
-
-[Overview of the "modern" document library experience](https://blogs.office.com/2016/06/07/modern-document-libraries-in-sharepoint)
417
-
-[Overview of the "modern" list experience](https://blogs.office.com/2016/07/25/modern-sharepoint-lists-are-here-including-integration-with-microsoft-flow-and-powerapps)
418
-
-[Differences between "modern" and "classic" experiences](https://support.office.com/en-us/article/Differences-between-classic-and-new-experiences-for-lists-and-document-libraries-30e1aab0-a5cc-4363-b7f2-09e2ae07d4dc?ui=en-US&rs=en-US&ad=US)
429
+
-[Modern document libraries in SharePoint](https://blogs.office.com/2016/06/07/modern-document-libraries-in-sharepoint)
430
+
-[Modern SharePoint lists are here—including integration with Microsoft Flow and PowerApps](https://blogs.office.com/2016/07/25/modern-sharepoint-lists-are-here-including-integration-with-microsoft-flow-and-powerapps)
431
+
-[Differences between the new and classic experiences for lists and libraries](https://support.office.com/en-us/article/Differences-between-the-new-and-classic-experiences-for-lists-and-libraries-30e1aab0-a5cc-4363-b7f2-09e2ae07d4dc?ui=en-US&rs=en-US&ad=US)
0 commit comments