[英]Sharepoint - Create view with grouping and list item hyperlink using Powershell CSOM
我正在使用Powershell创建视图。
下面是XML文件,其中包含视图和列表名称的列。
<Views>
<View List="Emp List" Title="EMP Requests" >
<Field Name="EmpName"/>
<Field Name="Status"/>
<Field Name="Emp ID"/>
<Field Name="Date of Joining"/>
</View>
</Views>
以下是用于创建视图的Powershell代码(CSOM):
[xml]$ViewDef = Get-Content -Path "C:\.....XML File Path\CompletedReqView.xml"
$context = New-Object Microsoft.SharePoint.Client.ClientContext("----URL Goes Here ----")
$context.Credentials = $credentials
$web=$context.Web;
$context.Load($web)
$context.ExecuteQuery()
Write-Host "Creating View" -foregroundcolor white -backgroundcolor Yellow
foreach($view in $ViewDef.Views.View)
{
$List = $context.Web.Lists.GetByTitle($view.List)
$context.Load($List)
$context.ExecuteQuery()
$View=$List.Views
$context.Load($View)
$context.ExecuteQuery()
$ViewFields = New-Object System.Collections.Specialized.StringCollection
foreach($field in $view.Field){
$ViewFields.Add($field.Name)
}
$ViewQuery = "<Where><Eq><FieldRef Name='Status' /><Value Type='Text'>Done</Value></Eq></Where>"
$ViewInfo = New-Object Microsoft.SharePoint.Client.ViewCreationInformation
$ViewInfo.ViewTypeKind =[Microsoft.SharePoint.Client.ViewType]::Html
$ViewInfo.Query = $compReqViewQuery
$ViewInfo.RowLimit = 50
$ViewInfo.ViewFields = $compReqViewFields
$ViewInfo.Title = $view.Title
$ViewInfo.Paged = $true
$ViewInfo.PersonalView = $false
$addi=$List.Views.Add(ViewInfo)
$context.Load($List)
try
{
$context.ExecuteQuery()
}
catch
{
Write-Host "Error : $_.Exception.Message" -foregroundcolor white -backgroundcolor Red
return
}
}
使用上面的代码,我能够成功创建一个视图。 我在这里面临两个问题:
分组依据:如何在此视图中执行分组依据。 假设我想按“状态”列对数据进行分组。 我尝试在caml查询中提供分组依据(以上代码中的$ ViewQuery),但是分组不起作用。 应该将此分组作为属性吗?
我希望“名称”列中的列表项是超链接,如何实现?
请提出建议。
要获得分组,您需要更新CAML查询以包括按元素分组。 如果它不起作用,则需要确保您的CAML格式正确。 我建议使用CAML查询工具。
<GroupBy Collapse=\"True\" GroupLimit=\"300\">Your field ref in here</groupBy>
我不确定链接周围,如果我希望它成为超链接,则可以使用xsltview Web部件并自定义xslt。
干杯
特鲁兹
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.