2016-06-30 10 views
0

Wir haben einen Block-Typ in unserem EpiServer-Projekt, das entweder ein zu verwendendes Video (EPiServer.Url) oder eine youtube-ID (string) angeben kann. Die Sache ist, dass es nur Sinn macht, beide zu verwenden, nicht beide. Gibt es eine Möglichkeit, ein Feld schreibgeschützt zu markieren, wenn das andere gefüllt ist?Constrict Benutzer, um nur eine von mehreren Eigenschaften zu füllen

Antwort

1

Nicht mit Vanille-Editoren, fürchte ich. Aber Sie könnten ziemlich einfach einen benutzerdefinierten Editor (Dojo-Widget) für diesen Anwendungsfall erstellen.

Hier ist ein Beispiel für einen benutzerdefinierten Editor eine Checkbox-Liste für die Auswahl Blöcke angezeigt werden, anstelle des Standard-Editor für content Eigenschaften: https://tedgustaf.com/blog/2016/create-a-custom-editor-for-a-content-area-in-episerver/

gelten jedoch die gleichen Prinzipien für jeden Inhaltstyp.

Um klar zu sein: Sie haben eine Art benutzerdefinierte Eigenschaft nicht brauchen, nur einen benutzerdefinierten Editor. Der Backing-Eigenschaftstyp könnte weiterhin String sein, der entweder die URL oder die YouTube-ID enthalten würde.

Wenn die Eigenschaft entwicklerfreundlicher sein soll, können Sie einen Blocktyp mit den Eigenschaften "YouTube ID" und "URL" erstellen und dann eine Inhaltseigenschaft dieses Blocktyps definieren.

Sie würden dann Ihren benutzerdefinierten Editor verwenden, um entweder die "YouTube ID" - oder "URL" -Eigenschaft dieser "VideoBlock" -Eigenschaft festzulegen.

Wir haben zuvor einen ähnlichen Editor erstellt, bei dem der Editor entweder ein Video mit einem Dropdown-Menü auswählt oder eine benutzerdefinierte URL für den Video-Stream angibt.