Prepopulate/Prefill WFFM Form’s field Sitecore.
We need to create custom control then we can pre-fill/databind our WFFM
form.
Here we are adding custom SingleLineTextField
. Below are steps:
1) Create custom control designer class, where we can add our custom property
namespace xxx.Foundation.Forms.WFFM
{
[Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design", typeof(IDesigner))]
public class CustomTextBox : RegexInputControl
{
private static readonly string baseCssClassName = "scfSingleLineTextBorder"; [VisualCategory("Custom Properties")]
[VisualProperty("Identifier", 2)]
[DefaultValue("")]
public string Identifier { get; set; } [VisualCategory("Validation"), VisualProperty("Minimum Length:", 1000), DefaultValue(0)]
public int MinLength
{
get;
set;
} [VisualProperty("Maximum Length:", 2000)]
[DefaultValue(256)]
[VisualCategory("Validation")]
public int MaxLength
{
get
{
return this.textbox.MaxLength;
}
set
{
this.textbox.MaxLength = value;
}
} [VisualProperty("CSS Class:", 600)]
[VisualFieldType(typeof(CssClassField))]
[DefaultValue("scfSingleLineTextBorder")]
public new string CssClass
{
get
{
return base.CssClass;
}
set
{
base.CssClass = value;
}
} public CustomTextBox(HtmlTextWriterTag tag): base(tag)
{
this.MaxLength = 256;
this.MinLength = 0;
2) Create MVC Type
class to data-bind custom control. Here we can apply our binding logic.
namespace xxx.Foundation.Forms.WFFM
{
public class CustomTextBoxMVC : SingleLineTextField
{
public CustomTextBoxMVC()
{
}
public override void Initialize()
{
//Here can do data-bind
this.Value = "My Value";
}
}
}
3) Go to below path and add new field type.
/sitecore/system/Modules/Web Forms for Marketers/Settings/Field Types/Custom/
Here in this example we are adding CustomTextBox. Specified Assembly,Class,MVC Type
field under Data section.
4) WFFM
form designer choose newly created custom control.