Agrupar por tipo de contenido en la vista de lista de SharePoint Online
Requisito: Establecer un grupo de vista de lista por tipo de contenido en SharePoint Online.
¿Cómo configurar un grupo de vistas de SharePoint Online por tipo de contenido?
Si desea configurar la opción de grupo por de una vista de lista según el "Tipo de contenido", no hay ninguna opción en la interfaz web (¡porque "Tipo de contenido" falta en la lista de columnas en el menú desplegable!). Así es como puedes agrupar por tipo de contenido.
Opción n.º 1: editar ListView con SharePoint Designer
A continuación se explica cómo puede configurar un grupo utilizando SharePoint Designer:
- Cree una vista de lista desde la interfaz de usuario web de SharePoint
- Edite la página de vista en modo avanzado usando SharePoint Designer. Busque “
” y reemplácelo con:
<Query>
<GroupBy Collapse='FALSE' GroupLimit='30' >
<FieldRef Name='ContentType' />
</GroupBy>
</Query>
Este método también funciona en SharePoint local.
Opción n.° 2: usar PowerShell para agrupar por "tipo de contenido" en SharePoint Online
Cree una vista de lista en la lista de SharePoint Online y use este script CSOM de PowerShell para actualizar el grupo de la vista de lista usando el campo "ContentType".
#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"
#Set parameter values
$SiteURL="https://Crescent.sharepoint.com/"
$ListName ="Documents"
$ViewName="All Documents"
Try {
#Setup Credentials to connect
$Cred= Get-Credential
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Credentials
#Get the List
$List = $Ctx.Web.Lists.GetByTitle($ListName)
#Get the view to update
$View = $List.Views.GetByTitle($ViewName)
$Ctx.ExecuteQuery()
if($View -ne $NULL)
{
#Define the CAML Query to Group by Content Type
$Query= "<GroupBy Collapse='FALSE' GroupLimit='30' ><FieldRef Name='ContentType' /></GroupBy>"
#Update the View
$View.ViewQuery = $Query
$View.Update()
$Ctx.ExecuteQuery()
Write-host "View Updated Successfully!" -f Green
}
else
{
Write-host "View '$ViewName' Doesn't exist in the List!" -f Yellow
}
}
Catch {
write-host -f Red "Error Updating List View!" $_.Exception.Message
}
Esto agrupará los elementos en su vista de lista según su tipo de contenido.
