Sharepoint — создание представления с группировкой и гиперссылкой элемента списка с помощью 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
        }
    }

Используя приведенный выше код, я могу успешно создать представление. Здесь я сталкиваюсь с двумя проблемами:

  1. Group By: Как выполнить группировку в этом представлении. Предположим, я хочу, чтобы данные были сгруппированы по столбцу «Статус». Я попытался указать Group By в запросе caml ($ ViewQuery в приведенном выше коде), но группировка не работает. Должна ли эта группировка быть атрибутом?

  2. Я хочу, чтобы элемент списка в столбце «Имя» был гиперссылкой, как этого добиться?

Пожалуйста, предложите.


person user2598808    schedule 29.07.2015    source источник


Ответы (1)


Чтобы получить группировку, вам нужно обновить запрос CAML, чтобы включить группировку по элементам. Если это не работает, вам нужно убедиться, что ваш CAML правильно сформирован. Я предлагаю использовать инструмент запросов CAML.

<GroupBy Collapse=\"True\" GroupLimit=\"300\">Your field ref in here</groupBy>

Я не уверен в ссылке, если бы я хотел, чтобы это была гиперссылка, я бы использовал веб-часть xsltview и настроил xslt.

Ваше здоровье

Труез

person Truezplaya    schedule 02.08.2015