我目前正在使用episerver 9 cms。Episerver在编辑模式下自定义网格中的复杂数据类型
我有我的页/块如下:
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; }
}
正如你所看到的,菜被渲染为[对象对象]而不是dishName。
任何人都可以告诉我如何做到这一点?
谢谢。
PropertyList编辑器仍处于测试阶段,它无法在该用例中正确呈现复杂类型(而不是字符串,整数等)。我们通过使用自定义编辑器解决了这个问题。 –
@TedNyberg: 感谢您的反馈。在这种情况下,你能对我做出解决吗?任何教程/链接都会很棒。我们如何使用自定义编辑器并解决它。 – user1641519
我们继承了最初的'CollectionEditor'编辑器来重写对象的渲染方式。确保你的UI源代码NuGet包能够查看Episerver本地编辑器的源代码。 –