Structure, Sections & Fields

- The header contains a title, a label, and an optional image.
- The title can be used to display the process name. Its text can be edited directly in the form.
- The label is used to display the current request number. Its default identifier is
CURRENT_REQUEST
and can be referenced in an action parameter to receive theRequest.Id
macro. - The image is used to display a logo. It can be resized or realigned.
- A fixed width and height can be set for the header in the form configuration window.
- The section has a title to display the section name. Its text can be edited directly on the form.
- It can have one or several fields.
- Each section must have a unique identifier.
- Sections can only be aligned vertically and reordered using the mouse drag-and-drop action.
- When inserting a section tool into the form, the new section will be placed in the last position.
- Section width will be resized automatically based on the widest field in the form whenever there is a field width change.
- A fixed width can be set for all sections.
- The sectionβs settings can be edited by clicking the pencil icon on the right side of the section name.
- The field has a label and an input control.
- The label is used to display the name of the field. Its text can be edited directly on the form. It can be resized and realigned.
- A fixed width can be set for all labels (General / Labels).
- The input control is where a value is captured in the form. It can be resized and realigned.
- Each field must have a unique identifier.
- Fields within the same section are prefixed with the sectionβs identifier following an underscore character.
- Fields within a section can be reordered vertically using the mouse drag-and-drop action.
- A field can be moved from one section to another section using the mouse drag-and-drop action.
- When inserting a field tool into the form, the new field will be placed in the last position of the selected section or the first section if no section is selected.
- By default, fields are aligned vertically on the same column.
- Two fields can be aligned horizontally on the same row using the Remove line break button (left arrow) on the right side of the first field.
- Two fields can be aligned vertically on the same column using the Line break button (right arrow) on the right side of the first field.
- The fieldβs settings can be edited edited by clicking the pencil icon on the right side of the field.
- The Submit and Save as draft buttons can be renamed in the form configuration window (General / Buttons) or in the Appearance Editor (see Appearance Editor).
- The Save as draft button can be enabled or disabled as well.
- Their identifiers are
submitButton
andsaveAsDraftButton
, respectively.
- The footer contains a title and an optional image.
- The title can be used to display a note. Its text can be edited directly on the form.
- The image is used to display a logo. It can be resized or realigned in the form configuration window (General / Footer) or in the Appearance Editor (see Appearance Editor).
- A fixed width and height can be set for the footer.
You can also change the web form style sheet and other attributes (header image, footer, text, etc.) at runtime by adding the following .NET code to your form:
protected void Page_Load(object sender, EventArgs e)
{
base.Page_Load(sender, e);
String stylePath=HttpContext.Current.Request.PhysicalApplicationPath.Replace("WfApps\\WebForms\\","App_Data\\Templates\\Forms\\En\\Default\\css");
Page.Header.Controls.Remove(this.FindControl("StyleSheet"));
Page.Header.Controls.Add(
new LiteralControl(
System.IO.File.ReadAllText(stylePath + "\\" + "metal.css")
)
);
string imageUrl="http://mywebsite/mylogo.jpg"
HeaderImage.Style["background-image"] = "url('" + imageUrl+ "')";
HeaderTitleLabel.Text="My Title #";
FooterTitleLabel.Text="My footer";
imageUrl="http://mywebsite/myfooter.jpg";
FooterImage.Style["background-image"] = "url('" + imageUrl+ "')";
}
This replaces:
- The current style sheet with the
metal.css
template - The header title label
- The header image
- The footer title label
- The footer image
Default and custom tools are available in the Tools drop-down list.
Name | Description |
Manage custom tools... | Opens the Manage custom tools window |
CustomΒ βΒ sections | List of custom section templates
A custom section template can be created by using the Save a section or field as tool feature or by manually deploying it on the server with the following folder and file structures: \wfgen\App_Data\Templates\Forms\[language]\[folder name]\sections\[section name].txt
π Example: \wfgen\App_Data\Templates\Forms\En\MyCompany\sections\MySection.txt
βοΈ Note: A custom section template must comply with the content structures and rules used and known by the form designer. This is aimed at advanced users. |
CustomΒ βΒ field | List of custom field templates β A custom field template can be created by using the Save a section or field as tool feature or by manually deploying it on the server with the following folder and file structures: \wfgen\App_Data\Templates\Forms\[language]\[folder name]\fields\[field name].txt
π Example: \wfgen\App_Data\Templates\Forms\En\MyCompany\fields\MyField.txt
βοΈ Note: A custom field template must comply with the content structures and rules used and known by the form designer. This is intended for advanced users. |
Default sections | β |
Approval | β ![]() A section that contains first name, last name, and date fields in read-only, plus an approval radio button list and comment multiline textbox |
Empty | β ![]() A section that has no fields |
Request | β ![]() A section that contains first name, last name, and date fields in read-only, plus a category drop-down list, subject textbox, and description multiline textbox |
Standard | β ![]() A section that contains first name, last name, and date fields in read-only |
Default fields | β |
Attachment | β ![]() Attach one file |
CheckBox | β ![]() Single checkbox |
CheckBoxList | β ![]() Multiple checkboxes in horizontal alignment |
CheckBoxListVertical | β ![]() Multiple checkboxes in vertical alignment |
Currency | β ![]() Input for currency value |
Date | β ![]() Input for date value |
DateTime | β ![]() Input for date time value |
DropDownListBox | β ![]() List of items for a single choice selection |
GridView | β ![]() Dynamic table of multiple input fields; each column represents a field and each row represents a record |
Label | β ![]() Text displayed in read-only |
ListBox | β ![]() List of items for a multiple choice selection |
Numeric | β ![]() Input for numeric value |
Password | β ![]() Input for password value (the entered text will be masked) |
RadioButton | β ![]() Single radio button |
RadioButtonList | β ![]() Multiple radio buttons in horizontal alignment |
RadioButtonListVertical | β ![]() Multiple radio buttons in vertical alignment |
ReadOnlyCurrency | β ![]() Read-only currency value |
ReadOnlyDate | β ![]() Read-only date value |
ReadOnlyDateTime | β ![]() Read-only date time value |
ReadOnlyNumeric | β ![]() Read-only numeric value |
ReadOnlyText | β ![]() Read-only text value |
TextArea | β ![]() Multiline textbox |
TextBox | β ![]() Single line textbox |
This feature allows a form designer to save an existing section or field in the current form as a custom tool template in order to be reused in other forms. First, select a section or field then click the Save a section or field as tool icon on the toolbar (see Toolbar).

Field | Description |
Save as tool | β |
Name | Enter a unique name for the custom tool |
Tools | Select an existing tool in the drop-down list for replacement |
To open this window, click the Tools drop-down menu and select Manage custom tools, which allows you to delete custom tools.


Name / Icon | Description |
Sections | β |
Name | Name of the custom section tool |
β ![]() | Delete the current custom section tool |
Fields | β |
Name | Name of the custom field tool |
β ![]() | Delete the current custom field tool |
NameΒ /Β Icon | Description |
β ![]() | Close and apply the changes to the section |
β ![]() | Close and cancel the changes |
Validation | β |
Behavior | βοΈ Note: To simplify the capture of a condition, the form fields and operators are listed in the Select a field... and Select an operator... drop-down menus. You can also press Ctrl+Space to display a drop-down menu that lists the available variables and keywords. |
Required | Sets the section fields to be required |
Condition | The section fields are required based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code. π Example: MyTextBox.Text == "Hello World" |
Read-only | Sets the sectionβs fields to read-only |
Condition | The section fields are read-only based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code. π Example: MyTextBox.Text == "Hello World" |
Hidden | Sets the section fields to be hidden |
Condition | The section fields are hidden based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code. π Example: MyTextBox.Text == "Hello World" |

Name / Icon | Description |
β ![]() | Close and apply the changes to the field |
β ![]() | Close and cancel the changes |
General | β |
Enable advanced mode | Enables the file attachment settings listed below |
Enable download link | Check if you want to enable the link to open file |
Show file size | Displays the size of the uploaded file beside the download link |
Upload file automatically | Automatically uploads the file, otherwise an upload button will be displayed |
Control style | Display the Modify and Delete controls as links or buttons |
Image/PDF preview | Display an image or PDF preview (thumbnail) |
Position | Display the image preview above (Top) or below (Bottom) the attachment filename and controls |
Width / Height | Sets the width and/or height of the image preview in pixels β β οΈ Important: You should only set one of these values in order to preserve the aspect ratio of the original image as displayed in the preview; otherwise, the image will appear distorted. |
Storage in form archive |
|
File size limit (kB) | Defines the maximum size of the uploaded file in kilobytes |
Size restriction error message | Write error that will appear if file exceeds the file size limit |
Allowed extensions | Restricts the allowed file types by extension, separated by commas (e.g. txt,doc,html,xml,png ) |
Forbidden extensions | List of file extensions not allowed for links |
Extension restriction error message | Write error message that will be displayed when file extension error occurs |
Empty file error message | Write error message that will display when there is no file to link to |
Add button label | Display text for the add button |
Update button label | Display text for update button |
Delete button label | Display text for delete button |
Overwrite button label | Allows you to choose a new file |
Cancel button label | Allows you to cancel request for a new file |
Display mode | Sets the default display mode:
|
Download link | Check to display a link to download the uploaded file |
Validation | β |
Behavior | βοΈ Note: To simplify the capture of a condition, the form fields and operators are listed in the Select a field... and Select an operator... drop-down menus. You can also press Ctrl+Space to display a drop-down menu that lists the available variables and keywords. |
Required | Sets the field to be required |
Condition | The field is required based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code. To help with the capture of the condition, the list of form fields and a list of operators are displayed. π Example: MyTextBox.Text == "Hello World" |
Read-only | Sets the field to be read-only |
Condition | The field is read-only based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code. To help with the capture of the condition, the list of form fields and a list of operators are displayed. π Example: MyTextBox.Text == "Hello World" |
Hidden | Sets the field to be hidden |
Condition | The field is hidden based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code. To help with the capture of the condition, the list of form fields and a list of operators are displayed. π Example: MyTextBox.Text == "Hello World" |
Custom attributes | β |
Name | Any name that is not in the list of standard reserved attribute names ( id , name , class , style , title , multiple , type , value , checked , runat )β Additional reserved attribute names specific to File attachment / General: accesskey , dir , lang , tabindex , xml:lang , onblur , onchange , onclick , onfocus , onmousedown , onmousemove , onmouseout , onmouseover , onmouseup , onkeydown , onkeypress , onkeyup , onselect , enabled , visible , ondatabinding , ondisposed , oninit , onload , onprerender , onunload β A list of examples of custom attributes is displayed at the beginning of the tab; you can choose one or enter a specific name. |
Value | Any value |
β ![]() | Add a new attribute |
β ![]() | Remove the current attribute |
These settings apply to CheckBoxList, CheckBoxListVertical, RadioButtonList and RadioButtonListVertical fields as well.

NameΒ /Β Icon | Description |
β ![]() | Add a new checkbox/radio button |
β ![]() | Delete the current checkbox/radio button |
Items | β |
β ![]() | Drag and drop to change the order of the items |
Checked | Check the default selected items in the field. The radio button field supports single selection whereas the checkbox field supports multiple selections. |
Value | Value of the checkbox/radio button |
Text | Display text of the checkbox/radio button |
β ![]() | Add a new checkbox/radio button |
β ![]() | Delete the current checkbox/radio button |
Validation | β |
Behavior | βοΈ Note: To simplify the capture of a condition, the form fields and operators are listed in the Select a fieldβ¦ and Select an operator... drop-down menus. You can also press Ctrl+Space to display a drop-down menu that lists the available variables and keywords. |
Required | Sets the field to be required |
Condition | The field is required based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code.
π Example: MyTextBox.Text == "Hello World" β βοΈ Note: The checkbox fields (list or single) and single radio button are not supported by this behavior. |
Read-only | Sets the field to be read-only |
Condition | The field is required based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code.
π Example: MyTextBox.Text == "Hello World" |
Hidden | Sets the field to be hidden |
Condition | The field is required based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code.
π Example: MyTextBox.Text == "Hello World" |
Custom attributes | β |
aslist | This property allows a radio button and checkbox field with one item to be converted as a list control (RadioButtonList / CheckBoxList) instead of a RadioButton / CheckBox control in the web form. Accepted Boolean values: true or false |
These settings apply to Currency, Date, DateTime, Numeric, Password, and TextArea fields.

NameΒ /Β Icon | Description |
β ![]() | Close and apply the changes to the field |
β ![]() | Close and cancel the changes |
Validation | β |
Behavior | βοΈ Note: To simplify the capture of a condition, the form fields and operators are listed in the Select a field... and Select an operator... drop-down menus. You can also press Ctrl+Space to display a drop-down menu that lists the available variables and keywords. |
Maximum length | The maximum number of characters that can be entered βοΈ Note: Now also available for TextArea fields. |
Required | Sets the field to be required |
Condition | The field is required based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code. π Example: MyTextBox.Text == "Hello World" |
Read-only | Sets the field to be read-only |
Condition | The field is read-only based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code. π Example: TextBox.Text == "Hello World" |
Hidden | Sets the field to be hidden |
Condition | The field is hidden based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code. π Example: MyTextBox.Text == "Hello World" |
Regular expression | β |
Expression | A regular expression to determine validity. π Example: email address: \b[A-Za-z0-9._%+-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}\b β A regular expression can be entered freely into the designated area. It is also possible to use regular expressions in the Select a regular expression list. |
Error message | Message to display when the validated field is invalid |
Range | β |
Minimum value | Minimum value for the field being validated |
Maximum value | Maximum value for the field being validated |
Error message | Message to display when the validated field is invalid |
Custom | β |
OnServerValidate | Server-side C# syntax validation code; must return a Boolean value (true or false) |
Validate empty text | Whether the validator validates the control when the text of the control is empty |
Error message | Message to display when the validated field is invalid |
Compare | β |
Value to compare | Value to compare against |
Control to compare | Select another field in the current form to compare against |
Operator | Comparison operation to apply to values:
|
Error message | Message to display when the validated field is invalid |
Custom attributes | β |
timezoneconversion | Applicable to Date and DateTime textbox fields only β This property allows the disabling of the default user time zone conversion behavior when the form field is in the Date or DateTime format. β This option is useful if you want to capture and maintain a consistent date-only value in the form field and process data without applying the time zone conversion that sometimes changes the date value depending on the original and current user time zones. β Accepted Boolean values: true or false |
Additional reserved attribute names specific to validation | maxlength , requiredcondition , readonlycondition , hiddencondition , validationexpression , regularexpressionerrormessage , minimumvalue , maximumvalue , rangeerrormessage , onservervalidate , validateemptytext , customerrormessage , valuetocompare , controltocompare , operator , compareerrormessage |
These settings (except Items) apply to Label, ReadOnlyCurrency, ReadOnlyDate, ReadOnlyDateTime, ReadOnlyNumeric, and ReadOnlyText fields as well.


Name / Icon | Description |
β ![]() | Close and apply the changes to the field |
β ![]() | Close and cancel the changes |
Items | β |
β ![]() | Drag-and-drop to change the order of the items |
Selected | Check the default selected items in the field
The DropdownListBox field supports single selection whereas the ListBox field supports multiple selections. |
Value | Value of the item |
Text | Displays text of the item |
β ![]() | Add a new item |
β ![]() | Delete the current item |
Databind | β |
Connection mode | Select the type of connection for data binding:
|
Connection by name | β |
Connection name | List of connection names defined in the WorkflowGen web configuration file ( <connectionStrings> )βοΈ Note: It is strongly recommended to use a connection name rather than a connection string to simplify multi-environment management. Connection names are centrally managed in the WorkflowGen web.config file. |
Select command | SQL select query π Examples: select column_id , column_text from table_name; |
Data value field | The data field that provides the item value π Example: column_id |
Data text field | The data field that provides the item text π Example: column_text |
Append data bound items | Check to append the data bound items to the list. Otherwise, the data bound items will replace all the existing items in the list. |
Parameters | β |
Name | Specifies the parameter name if the Select command uses a filter with a dynamic value from a parameter in the select query.π Example: Name=PARAM; Select command=select column_id, column_text from table_name where column_id > @PARAM |
Data type | Specifies the data type of the parameter: Boolean , Byte , Char , DateTime , DBNull , Decimal , Double , Empty , Int16 , Int32 , Int64 , Object , SByte , Single , String , UInt16 , UInt32 , UInt64 |
Filter by field | Specifies another field in the current form where the dynamic value will be retrieved |
Default filter value | Specifies the default value if the parameter field has an empty value or no value |
If the value is empty | Select from one of the following:
|
Connection by string | β |
Connection String | Specifies the connection string π Example: Data Source=sqlserver_name;Initial Catalog=wfgen;User ID=wfgen_user;Password=abc123!; |
Provider name | List of provider names defined in the WorkflowGen web configuration file ( AdministrationFormDataProviderName ). It also supports custom defined third-party .NET data providers.
|
Select command, Data value field, Data text field, Append data bound items, Parameters (Name, Field, Default value and Data type) | Same as Connection by name |
Connection by global lists | β |
List name | Specifies the list name |
Data value column | Select the column used for itemβs value |
Data text column | Select the column used for itemβs label |
Sort column | Select the column used to sort the list |
Append data bound items | Check to append the data bound items to the list. Otherwise, the data bound items will replace all the existing items in the list. |
Filter | β |
Column | Specifies the column name used to filter data |
Comparison operator |
|
Filter by field | Select the form field that contains the filterβs value |
Default filter value | The default value if the field is empty |
If the value is empty | Set the behavior of the filter if the value is empty |
Connection by XML | β |
URL | Specifies the file name of an XML file for data binding π Examples:
The XML file must be structured so that the properties of each element are expressed as attributes. If you have an XML file in which property values are expressed in a format other than attributes, you must:
|
XPath | Specifies an XPath expression to be applied to the XML data contained by the XML file, e.g. rss/channel/item |
XSL transform file | Specifies the file name of an Extensible Stylesheet Language (XSL) file ( .xsl ) that defines an XSLT transformation to be performed on the XML fileπ Example: c:\myfile.xsl |
Data value field, Data text field, Append data bound items | Same as Connection by Name |
Connection by SharePoint 2007 and 2010 | βοΈ Note: The settings in the config file have to be set to detect SharePoint for this option to be active . |
URL | URL of the SharePoint list π Example: http://www.mysitesps.com/mylists |
Name of the list | Name of the SharePoint list π Example: Country |
Data field value | Name of the column containing the value of the item π Example: Id_Country |
Data text field | Name of the column containing the text of the item π Example: Description |
Validation | β |
Behavior | βοΈ Note: To simplify the capture of a condition, the form fields and operators are listed in the Select a fieldβ¦ and Select an operatorβ¦ drop-down menus. You can also press Ctrl+Space to display a drop-down menu that lists the available variables and keywords. |
Maximum length | The maximum number of characters that can be entered βοΈ Note: Not available for TextArea fields. |
Required | Sets the field to be required |
Condition | The field is required based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code. π Example: MyTextBox.Text == "Hello World" |
Read-only | Sets the field to be read-only |
Condition | The field is read-only based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code. π Example: MyTextBox.Text == "Hello World" |
Hidden | Sets the field to be hidden |
Condition | The field is hidden based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code. π Example: MyTextBox.Text == "Hello World" |
Custom attributes | β |
timezoneconversion | Applicable to Date and DateTime Label fields only β This property allows for the disabling of the the default user time zone conversion behavior when the form field is in Date or DateTime format. β This option is useful if you want to capture and maintain a consistent date-only value in the form field and process data without applying the time zone conversion that sometimes changes the date value depending on the original and current user time zones. β Accepted Boolean value: true or false |
Additional reserved attribute names specific to Databind | connectionname , connectionstring ,
|