Ограничить пользователя, чтобы заполнить только одно из нескольких свойств

В нашем проекте EpiServer есть тип блока, в котором можно указать видео для использования (EPiServer.Url) или идентификатор YouTube (string). Дело в том, что имеет смысл использовать только один из них, а не оба. Есть ли способ пометить одно поле только для чтения, если другое заполнено?

1 ответ

Боюсь, я не использую ванильные редакторы. Но вы можете довольно легко создать собственный редактор (виджет dojo) для этого варианта использования.

Вот пример пользовательского редактора для отображения списка флажков для выбора блоков вместо стандартного редактора для свойств ContentArea: https://tedgustaf.com/blog/2016/create-a-custom-editor-for-a-content-area-in-episerver/

Однако те же принципы применимы к любому типу контента.

Чтобы было ясно: вам не нужен пользовательский тип свойства, просто пользовательский редактор. Тип поддерживаемого свойства все еще может быть строкой, которая будет содержать либо URL, либо идентификатор YouTube.

Если вы хотите, чтобы это свойство было более удобным для разработчиков, вы можете создать тип блока с помощью свойств "Идентификатор YouTube" и "URL", а затем определить свойство контента для этого типа блока.

Затем вы можете использовать свой пользовательский редактор для установки свойства "YouTube ID" или "URL" этого свойства "VideoBlock".

Ранее мы создавали аналогичный редактор, в котором он мог бы выбрать видео с помощью раскрывающегося списка или указать пользовательский URL-адрес видеопотока.

Другие вопросы по тегам