FormBuilder is a module-based plugin that allows non-technical administrators to create unlimited forms from their control panel. What really sets this apart from other form builders is the ability to record form submissions into the database. I was able to leverage Sitefinity's clean API by extending the Generic Content module (for storing forms) and the Comments framework (for recording submissions).
While one of the most demanded feature for Sitefinity CMS is the ability for administrators to create forms on-the-fly, there is still no built-in capability of this with the current release (v3.7). Indeed, Sitefinity goes a long way to build a solid foundation to extend functionality, so I took it upon myself to create this feature and share it with the community. Thanks to Steven Webb for the inspiration!
FormBuilder is FREE to use and distribute as you wish. If you enjoy my work, please consider making a donation to help me expand on features and optimizations.
Features:
- Ability for administrators to add input fields without writing a single line of code:
- Fieldset Group
- Text Input
- Text Area
- WYSIWYG Editor
- Date Input
- Number Input
- Label Text
- Check Box
- Check Box List
- Radio Button List
- Drop Down List
- Captcha Control
- Upload Input
- Hidden Field
- Relevant options for each of the input fields above, such as validations, default values, read only, orientation, and much more
- Add a comma separated list of emails for the "To", "From", "CC", and "BCC" fields
- Define custom labels for the subject, send button, success message, failure message, validation message, and confirmation message
- Ability to automatically email a confirmation message to the user who submitted the form
- Standardized form generation allowing you to style using your own CSS
- Define the number of columns for each fieldset section
- Ability to record all form submissions for easy viewing in the admin control panel
Screenshots:
Running Environment:
The form builder has been fully tested on
- Sitefinity 3.7 SP2
- ASP.NET 3.5
- IIS7
Note: If enough people request previous versions (and perhaps kick a donation or two- see sidebar), I'll gladly compile and upload them.
Download FormBuilder:
Installation:
- Copy the contents of the "Website" folder to your Sitefinity folder.
- Merge the App.config configurations into your Sitefinity Web.config.
- Add ~/Sitefinity/Admin/ControlTemplates/Common/Custom/ButtonSelector.ascx
- Add ~/Sitefinity/Common/ToolsFile.xml
- That's it!
Source Code:
To keep the community contributions coming:
- Provide your feedback
- Make a donation
Updated Version of FormBuilder Includes:
- Allow admin to enter form code from control panel (instead of just thru database)
- Allow copying of forms
- Highlight field row in FormBuilder so it can be easier to see which row you are editing/deleting
- Added option for not sending hidden input in email
- Added column span for FormBuilder fields
- Allow to specify library for FormBuilder upload field
- Added upload control for FormBuilder
- Exports of submissions are in CSV format
- Added rich text control for FormBuilder
- Set on focus for the validator instead of scrolling to top
- Option to prefill form based on submitted sender in URL id
- Option to clear form after submit
- Allow to use a send image button for FormBuilder
- Allow to add numeric input from FormBuilder with number options
- Allow disable email option by not specifying "to" address
- Add tooltip option for input instructions
- Allow current date option for date input by using #now keyword
- Allow to specify text and value for drop down, radio button list, and checkbox list
- Allow form to redirect to page
- Allow hidden inputs to be added to form
- Remove default checkmark for checkbox and radiobutton list input
- Make label field unlimited length for all inputs
- other minor bug fixes and optimizations
You can help development and support continue by chipping in
ENJOY!!




Thanks for sharing – i like it, i see same at twapt .net – mobile form builder
Thanks for the acknowledgement. I’d like to say that you did a great job
on this. I think it’s going to be big in the community. I think yours by
far is one of the more innovative, robust solutions and hopefully by
sharing it, enhancements to it will make it even better. Once again awesome
job!!
Very cool! Can I redirect a user to a Thanks page?
Excellent suggestion! I will add that feature into the next update.
Devin,
I was in need of something similar. Since Basem was kind enough to release the source, I made a few changes so that rather than a redirect after a submission, it hides the form and displays the confirmation message. Also made the success message a full featured html control, rather than just a line of text.
Great Job Basem!
I have one small suggestion. Some smtp servers require SSL and their is no way to configure this in the SMTP settings of the web.config. It must be done in code. Fortunately, I was able to make this tweak since you released the source. It might be helpful to add a variable in the Forms module to enable SSL SMTP.
It is a property of the SmtpClient.
client.EnableSsl = true;
As it stands, if someone has a mail server (such as Gmail) that requires SSL, there is now way to enable it without recompiling your code.
Thanks for a great product!
Very nice! This is a great addition to collection of modules for Sitefinity.
We are in the process of evaluating the Sitefinity CMS and we have gotten a request to build a Dynamic Forms Application. What perfect timing.
I am going to give this a try.
THANKS!
Very nice I also am evaluating Sitefinity CMS and this is great.
One thing I am on the look out for is a form module that can calculate and display results. We have a number of forms created that serve as calculators (Salary, Tax, Mortgage etc…) unfortunately not ported over into Sitefinity yet.
This would be a great feature.
Basem, thanks for sharing this awesome module!
Do you know how I would set the default date to be the current date and time for the Date Input?
Hey, awesome tool, easy to work with and create forms. One problem though. When i fill out the form and submit i get the failure message, and dont know why. Is there any error reports anywhere to indicate why it may be failing?
Great Job:)
I need to create a popup enquiry form and would like to use your formbuilder. Could I create a UserControl that wraps your formbuilder but exposes additional public properties that controls the popup behaviour?
I was thinking of using the radWindow control to acheive the popup functionality.
Any help appreciated.
Regards,
Paul.
Very nice contribution to community. When we go live with our first website using it we will be contributing to your ongoing development efforts as well. How can we better customize the look and feel of the form? We would like to remove the gray borders and have better control over customizing other elements.
Great product, just donated $50, will donate more if someone tells me how “Prefill by Sender” works. I want that one form on one page, prefills data on next page. Tries everything not working. Please help. Tomorrow I have a conf call with Sitefinity, I will suggest them to buy your product or company to make it available for everyone.
Great news… I have updated the FormBuilder tremendously! Check out the release notes above. Here are some answers to your questions:
@Shae, you can now use #now in the default value for the Date Input field.
@Vitaly, maybe you need to add authentication in your SMTP settings in the web.config. Make defaultCredentials=”false” and add the credentials for your mail server.
@Paul, you would need some custom work to the SingleForm.cs class to get this done. Perhaps that’s the class you would wrap in a RadWindow and then drop that RadWindow onto the page editor. Contact me if you would like me to help on the custom work.
@Jamal, there are two options in regards to styling the form. You can override the style by adding this to your stylesheet:
.formContainer fieldset
{
border: 0 !important;
}
Or, edit the control in the page edit screen of Sitefinity. You will notice one property called “Embed Stylesheet”. You can set that to false and create your own stylesheet from scratch. You can look in the source code for the stylesheet that was used in the project at /Resources/Styles/singleform.css. This should give you a head start on recreating your own stylesheet.
@Talyano, thanks for the donation! The “Prefil by Sender” will populate the form based on the submission ID (or comment ID in Sitefinity terms).
Here is how it works: Go to the Tracking section and pick a submitted entry. You will see in the URL a “Param” field with a long string value (a GUID), copy this. Now go to the public side of your form page. In the URL, paste “senderId=” and add the GUID you copied (such as http://mydomain.com/myform.aspx?senderId=b7ba480a-c87a-4b92-b0a4-21e8d5815f14). It would prefill all the user’s input into the form so they can see what they submitted and even resubmit changes. Remember to check off the Prefill By Sender option before testing this out.
The way it will be used is I am hoping in the future to customize the “Confirmation Message” of the form to optionally add a link to be emailed to the user, adding their submission ID to the link. So when the user gets a confirmation email, they can click on it and go back to the form exactly as they submitted… with all fields ‘prefilled by the sender’
Hi, I’m using your Formbuilder and so far it’s been excellent. One problem I have, is that I’m using a checkbox group – and none of the checkboxes should be required. To this end I’ve unchecked “required” when editing that form element. However, it is still required when filling out the form, no matter what I do. Is there something in the config I could edit to resolve this?
You have to clear the “Min # Selected” field and you should be ok.