Настраиваемый тип поля в модели надстройки SharePoint
Сводка
Подход, который вы используете для предоставления настраиваемых возможностей для конечных пользователей, отличается в новой модели надстройки SharePoint, чем в коде полного доверия. В типичном сценарии с кодом полного доверия (FTC) или решением фермы пользовательские типы полей были созданы с помощью кода серверной объектной модели SharePoint путем наследования от одного из встроенных классов типов полей и создания файла развертывания типа поля (XML). Эти компоненты развертывались с помощью решений SharePoint.
В сценарии модели надстроек SharePoint настраиваемые возможности для конечных пользователей реализуются через отрисовку на стороне клиента. В этом подходе файлы JavaScript используются для реализации пользовательских возможностей. Шаблон удаленной подготовки развертывает файлы JavaScript и регистрирует их в полях SharePoint через свойство JSLink.
С точки зрения конечного пользователя возможности и результат выглядят одинаково.
Важно!
Настройки на основе JSLink (клиентская обработка) не поддерживаются в современном интерфейсе. Это относится к современным спискам и библиотекам, включая поддержку JSLink в веб-частях представления списка современных страниц. Клиентская обработка поддерживается в классических интерфейсах в SharePoint Online или локальной версии.
Ниже приведены некоторые примеры настраиваемого типа поля, реализующего карту Google. Они поступают из примера Branding.JSLink Office 365 PnP.
Эскизы изображений карты Google, отображаемые в представлении списка:
Встроенное редактирование, показывающее эскиз карты Google большего размера:
Диалоговое окно, включаю встроенное редактирование:
Рекомендации высокого уровня
Как правило, мы хотели бы предоставить следующие общие рекомендации по реализации отрисовки на стороне клиента.
- Используйте файлы JavaScript и отрисовку на стороне клиента для реализации настраиваемых типов полей.
- Используйте шаблон удаленной подготовки для развертывания файлов JavaScript и их регистрации в полях SharePoint или веб-частях представления списка.
- Зарегистрируйте файлы JavaScript в подсистеме стратегии минимального скачивания (MDS), чтобы убедиться, что подсистема MDS знает о пользовательской отрисовке файлов JavaScript.
- Для установки свойства JSLink для размещения веб-сайта требуется по крайней мере полное разрешение на уровне веб-сайта, поэтому этот подход не подходит для надстроек в магазине SharePoint.
Параметры реализации клиентской отрисовки с помощью файлов JavaScript с помощью свойства JSLink
У вас есть несколько вариантов реализации клиентской отрисовки с файлами JavaScript с помощью свойства JSLink.
- Задайте свойство JSLink в веб-части Представления списка, которая отображает представление списка SharePoint.
- Задайте свойство JSLink для поля SharePoint.
- Задайте свойство JSLink для типа контента SharePoint.
Установка свойства JSLink в веб-части представления списка, которая отображает представление списка SharePoint
В этом параметре задается свойство JSLink для webPartDefinition.
- Этот подход не специально создает пользовательский тип поля на уровне SPField.
- Поэтому настраиваемая отрисовка применяется только в веб-части представления списка, где задано свойство JSLink.
- Этот подход позволяет изменить отрисовку для одного или нескольких полей SharePoint одновременно.
- Этот подход может быть выполнен с помощью декларативного кода, серверной объектной модели SharePoint, клиентской объектной модели SharePoint (CSOM) или с помощью PowerShell.
- Для задания свойства JSLink с помощью шаблона удаленной подготовки рекомендуется использовать серверную объектную модель SharePoint, клиентская объектная модель SharePoint или PowerShell.
Для каких случаев он подходит?
Если необходимо определить определенные представления для данных списка SharePoint и изменить отрисовку для нескольких полей SharePoint, это хороший вариант.
Начало работы
В следующем примере задается свойство JSLink в веб-части представления списка SharePoint.
- Branding.ClientSideRendering (пример PnP O365)
- Включает 9 примеров, которые задают свойство JSLink в веб-части представления списка SharePoint, и объяснение того, как каждый пример был реализован.
- Метод RegisterJStoWebPart задает свойство JSLink веб-части Представления списка.
Установка свойства JSLink для поля SharePoint
В этом параметре задается свойство JSLink для SPField.
- Этот подход специально регистрирует свойство JSLink на уровне SPField.
- Таким образом, пользовательская отрисовка будет применяться везде, где отображается SPField.
- Такой подход позволяет изменить отрисовку для одного поля SharePoint.
- Этот подход можно сделать с помощью декларативного кода, серверной объектной модели SharePoint, клиентской объектной модели SharePoint или PowerShell.
- Для задания свойства JSLink с помощью шаблона удаленной подготовки рекомендуется использовать серверную объектную модель SharePoint, клиентская объектная модель SharePoint или PowerShell.
Для каких случаев он подходит?
Если необходимо определить определенное представление для определенного поля SharePoint и убедиться, что представление всегда используется при отрисовыве поля, это хороший вариант.
Начало работы
В следующих статьях показано, как задать свойство JSLink в SPField.
- Использование свойства JSLink для изменения способа отображения поля или представлений в SharePoint 2013 (Tobias Zimmergren)
- Использование JSLink с SharePoint 2013 (MSDN Magazine)
Проблемы с реализацией клиентской отрисовки с файлами JavaScript с помощью свойства JSLink
При разработке пользовательских компонентов отрисовки на стороне клиента имейте в виду следующее.
Не все поля SharePoint могут быть переопределены с помощью свойства JSLink.
- Хорошим примером является ТаксономияField.
JSLink поддерживает несколько маркеров.
- _Макеты
- _Сайта
- _siteCollection
- _siteCollectionLayouts
- _siteLayouts
Вы можете зарегистрировать файлы JSLink JavaScript с помощью платформы SharePoint Script On Demand (SOD), чтобы отложенно загрузить файл.
Используйте тег (d) в конце URL-адреса JSLink, чтобы зарегистрировать файл с помощью SOD.
~sitecollection/Style Library/JSLink-Samples/DependentFields.js(d)
Вы можете загрузить несколько файлов JavaScript с помощью свойства JSLink.
Это особенно полезно, если у вас есть библиотека файлов JavaScript, которые реализуют отрисовку на стороне клиента.
Этот подход рекомендуется использовать при выборе мобильных устройств, так как он позволяет предоставлять только Код JavaScript, необходимый для реализации клиентской отрисовки определенного поля SharePoint.
Использование | символ для разделения файлов JavaScript, которые требуется загрузить.
~sitecollection/Style Library/JSLink-Samples/MainLibrary.js|~sitecollection/Style Library/JSLink-Samples/SpecificField.js**(d)**
См. также
- Свойство SPField.JSLink (документация по API MSDN)
- Использование свойства JSLink для изменения способа отображения поля или представлений в SharePoint 2013 (Tobias Zimmergren)
- Использование JSLink с SharePoint 2013 (MSDN Magazine)
- Статьи руководства на https://aka.ms/OfficeDevPnPGuidance
- Ссылки в MSDN на https://aka.ms/OfficeDevPnPMSDN
- Видео на https://aka.ms/OfficeDevPnPVideos
Образцы PnP
- Branding.ClientSideRendering (пример PnP O365)
- Branding.JSLink (пример PnP O365)
- Примеры и содержимое на сайте https://github.com/SharePoint/PnP
Область применения
- Office 365 Multi Tenant (MT)
- Office 365 Dedicated (D) частично
- Локальная среда SharePoint 2013 — частично
Шаблоны для выделенных и локальных служб идентичны методам модели надстроек SharePoint с отличиями, связанными с возможностью применения технологий.