2015-11-08 81 views
5

我想向WFFM表單字段類型添加其他屬性。擴展Sitecore WFFM字段類型

在字段類型,內置有在窗體設計enter image description here

我想補充我自己的部分和屬性這個區域的左側屬性。 這可以很容易地完成,而不會覆蓋現有的字段類型或黑客與核心代碼?

我真的不想重新創建例如單行文本字段只是爲了添加我自己的屬性字段。

+0

您使用的是wffm webforms還是mvc?什麼版本的wffm和sitecore? –

回答

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; 
     } 
    } 

然後,您可以得到它從FieldItemParameters訪問由上提交甚至valiadator內容編輯器中輸入的屬性值 - FieldItem [「參數」]

對於一個完整的示例來源看到這個職位;

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

+0

不知道爲什麼這是downvoted。 –

+0

不知道,這是正確的答案,這種形式需要一些編碼。 +1 – jammykam