【问题标题】:Get/Set List Field on Blocks获取/设置块上的列表字段
【发布时间】:2018-09-18 13:56:33
【问题描述】:

这是在我的 Models.Regions 课程中

public class Slider
{
    [Field]
    public StringField  Title       { get; set; }
    [Field]
    public TextField    Description { get; set; }
    [Field]
    public ImageField   Background  { get; set; }
    [Field(Title = "Text on Button")]
    public StringField  NameButton  { get; set; }
    [Field]
    public StringField  Link        { get; set; }
}

在 Models.Blocks 中,我创建了一个名为 SliderBlock.cs 的块,我需要插入一个滑块列表

[BlockType(Name = "Slider", Category = "Content")]
public class SliderBlock : Block
{
    public List<Models.Regions.Slider> Sliders { get; set; }
}

如何查看经理的列表?

【问题讨论】:

    标签: piranha-cms


    【解决方案1】:

    Blocks 的方法略有不同,不幸的是,该领域的文档不是最新的。要创建块列表,请使用 BlockGroup,对于接受单一类型元素的滑块,代码可能是:

    [BlockGroupType(Name = "Slider", Category = "Content")]
    [BlockItemType(Type = typeof(SliderItemBlock))]
    public class SliderGroup : BlockGroup
    {
    }
    
    
    [BlockType(Name = "Slider Item", Category = "Content", IsUnlisted = true)]
    public class SliderItemBlock : Block
    {
        [Field]
        public StringField Title { get; set; }
    
        [Field]
        public TextField Description { get; set; }
    
        [Field]
        public ImageField Background { get; set; }
    
        [Field(Title = "Text on Button")]
        public StringField NameButton { get; set; }
    
        [Field]
        public StringField Link { get; set; }
    }
    

    关于示例代码的几点说明。

    1. 如您所见,SliderGroup 实际上也是一个 Block。这意味着如果您想要对所有项目都有效的全局字段,例如背景颜色,您也可以将字段添加到块组。如果您想这样做,您需要将 UseCustomView = true 添加到 BlockGroupType 属性,并在处理全局字段时为块组提供 EditorTemplate。
    2. BlockType 属性中我添加了IsUnlisted = true。这意味着SliderItemBlock在向SliderGroup 添加项目时可见,而不是在向常规页面流添加块时可见。
    3. 您可以为一个组指定多个BlockItemType 属性,这将使您有可能拥有一个支持不同类型项目的滑块。如果您不向组中添加任何 BlockItemType 属性,所有块类型都可以添加到组内。
    4. 不要忘记,块组需要注册,就像普通块一样。

    2019 年 9 月 26 日更新

    我们更新了文档以包含有关如何创建自定义块组的部分,您可以在此处阅读:

    http://piranhacms.org/docs/extensions/custom-block-groups

    最好的问候

    哈坎

    【讨论】:

    • 非常感谢,我成功了。我希望文档将很快更新。再次感谢,祝您有美好的一天
    • 您好,是否也可以将 Vue 组件代码添加到此示例中?我正在尝试做类似的事情,但我是 Vue.js 的新手,我很难理解它。谢谢!
    • 我们已经更新了文档,并且我已经使用链接更新了上述解决方案。最好的问候
    猜你喜欢
    • 2021-03-16
    • 2018-07-17
    • 2010-10-20
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多