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
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.
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. –
@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
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. –