2016-08-30 3 views
1

Ich arbeite derzeit auf Episerer 9 cms.Episerver anpassen komplexen Datentyp im Raster im Bearbeitungsmodus

Ich habe meine Seiten/Blöcke wie folgt:

public class MenuBlock : SiteBlockData 
    { 

     [Display(
      Name = "Menu title", 
      Description = "* Required", 
      GroupName = SystemTabNames.Content, 
      Order = 1)] 
     public virtual string MenuTitle { get; set; } 


     [Display(
      Name = "Section", 
      Description = "Add menu sections", 
      GroupName = SystemTabNames.Content, 
      Order = 3)] 
     [EditorDescriptor(EditorDescriptorType = typeof(CollectionEditorDescriptor<SectionBlock>))] 
     public virtual IList<SectionBlock> Section { get; set; } 

    } 

public class SectionBlock 
    { 
     [Display(
      Name = "Section name", 
      Description = "Select the Menu Image", 
      GroupName = SystemTabNames.Content, 
      Order = 1)] 
     public virtual string SectionName { get; set; } 

     [Display(
      Name = "Dishes", 
      Description = "Dishes", 
      GroupName = SystemTabNames.Content, 
      Order = 2)] 
     [EditorDescriptor(EditorDescriptorType = typeof(CollectionEditorDescriptor<DishBlock>))] 
     public virtual IList<DishBlock> Dishes { get; set; } 
    } 

public class DishBlock 
    { 
     [Required(ErrorMessage = "Dish name is required")] 
     [Display(Name = "Dish name", 
      Description = "* Required", 
      GroupName = SystemTabNames.Content, 
      Order = 1)] 
     public virtual string DishName { get; set; } 

     [Display(
      Name = "Dish description", 
      Description = "", 
      GroupName = SystemTabNames.Content, 
      Order = 2)] 
     [UIHint(UIHint.Textarea)] 
     public virtual string DishDescription { get; set; } 

     [Display(
      Name = "Price", 
      Description = "", 
      GroupName = SystemTabNames.Content, 
      Order = 4)] 

     public virtual double Price { get; set; } 

    } 

Jetzt im CMS, den Bearbeitungsmodus, als enter image description here

gemacht wird Wie Sie sehen können, werden Gerichte übertragen als [object object] anstelle von gerichtname.

Kann jemand mir vorschlagen, wie man das erreicht?

Danke.

+0

Der PropertyList-Editor ist noch in der Beta, und es hat keine Möglichkeit, komplexe Typen in diesem Anwendungsfall richtig zu rendern (im Gegensatz zu Strings, ganze Zahlen usw.). Wir haben dies in unseren Projekten mithilfe eines benutzerdefinierten Editors gelöst. –

+0

@TedNyberg: Vielen Dank für Ihr Feedback. In diesem Fall, wirst du mir fähig sein, wie hast du es gelöst? Jede Anleitung/Link wäre großartig. Wie können wir den benutzerdefinierten Editor verwenden und ihn lösen? – user1641519

+0

Wir haben den ursprünglichen 'CollectionEditor'-Editor geerbt, um zu überschreiben, wie Objekte gerendert werden. Stellen Sie sicher, dass Sie über das NuGet-Paket für die UI-Quellen verfügen, um den Quellcode des nativen Episerver-Editors anzeigen zu können. –

Antwort

0

Sie können ein eigenes Dojo-Widget erstellen, das CollectionEditor erbt, und anpassen, wie die Elemente gerendert werden.

Sie würden dann Ihren benutzerdefinierten Editor mit dem Attribut EditorDescriptor für die entsprechenden PropertyList Eigenschaften angeben.

+0

Danke für Ihre schnelle Antwort :) Eine letzte Sache ... Ich bin nicht sehr bewusst über Dojo-Widget .... Also, wenn Sie einen guten Link zum Erstellen von EditorDescriptor mit Dojo-Widget ... das wäre toll für mich. Oder irgendwelche Tutorials, die Sie teilen möchten. – user1641519

+0

Hier finden Sie einige Beispiele: https://tedgustaf.com/blog/dojo (nicht genau der gleiche Anwendungsfall mit PropertyList, aber hoffentlich wird es Sie in die richtige Richtung bringen). –

+0

Kannst du plz mir einfach helfen, nuget Befehl zum Download von UI-Quellen, um in der Lage zu sein, den Quellcode des Episerver nativen Editors zu sehen? viele thnks – user1641519

0

Hallo @TedNyberg - Sie haben keine Einsicht in der Entwicklung von Property und wenn sie beabsichtigen, es möglich zu machen, die Attribute in einer bestimmten Weise zu machen, ohne das Dojo -Wege zu gehen? Eine einfache Sammlung-ToString-thingy-UIHint: ish wäre nett ...;)

Verwandte Themen