扩展Sitecore WFFM字段类型

时间:2015-11-08 18:56:19

标签: sitecore sitecore8 web-forms-for-marketers

我想在WFFM表单字段类型中添加其他属性。

内置字段类型在表单设计器enter image description here

的左侧具有属性

我想将自己的部分和属性添加到此区域。 这可以轻松完成而不会覆盖现有的字段类型或使用核心代码进行黑客攻击吗?

我真的不想重新创建例如单行文本字段只是为了添加我自己的属性字段。

1 个答案:

答案 0 :(得分:3)

不幸的是,唯一实现它的方法是在代码中创建自定义Field Type,以实现现有的字段,例如Single Line Text。没有其他配置可以更改,您必须通过代码添加属性,能够采用和扩展'核心'代码是Sitecore的名称。

但添加这些属性非常简单,如果只是实现现有属性,则不必重新开发每个字段。然后,只需从Type下拉列表中选择自定义单行文字,然后查看新属性..

实施现有的Fields将为您提供Single Line Text开箱即用的所有内容及其属性,现在您需要在新class中定义属性。属性本身是用可视属性修饰的类的public properties

例如,我想要一个属性来保存FileUpload字段的文件大小限制,这可以通过添加公共string属性来完成;

public class CustomSingleLineText : SingleLineText
{
    private int _fileSizeLimit;

    // Make it editable
    [VisualFieldType(typeof(EditField))]
    // The text display next to the attribute
    [VisualProperty("Max file size limit (MB) :", 5)]
    // The section the attribute appers in
    [VisualCategory("Appearance")]
    public string FileSizeLimit
    {
        get
        {
            return this._fileSizeLimit.ToString();
        }
        set
        {
            int result;
            if (!int.TryParse(value, out result))
                result = 5;
            this._fileSizeLimit = result;
        }
    }

然后,您可以通过Parameters FieldItem的{​​{1}} - FieldItem [“参数”]

访问提交内容编辑器甚至valiadator输入的属性值

有关完整示例来源,请参阅此帖;

http://jonathanrobbins.co.uk/2015/10/06/sitecore-marketplace-module-secure-file-upload/