Define methods that build the backend form toolbar and sections in the following way:
private static void CreateBackendFormToolbar(DetailFormViewElement detailView, string resourceClassId, bool isCreateMode)
{
JobsDefinitions.CreateBackendFormToolbar(detailView, resourceClassId, isCreateMode, "ThisItem", true);
}
private static void CreateBackendFormToolbar(DetailFormViewElement detailView, string resourceClassId, bool isCreateMode, string itemName, bool showPreview, string backToItems = "BackToItems")
{
var toolbarSectionElement = new WidgetBarSectionElement(detailView.Toolbar.Sections)
{
Name = "BackendForm",
WrapperTagKey = HtmlTextWriterTag.Div,
CssClass = "sfWorkflowMenuWrp"
};
// Create
toolbarSectionElement.Items.Add(new CommandWidgetElement(toolbarSectionElement.Items)
{
Name = "SaveChangesWidgetElement",
ButtonType = CommandButtonType.Save,
CommandName = DefinitionsHelper.SaveCommandName,
Text = (isCreateMode) ? String.Concat("Create", itemName) : "SaveChanges",
ResourceClassId = resourceClassId,
WrapperTagKey = HtmlTextWriterTag.Span,
WidgetType = typeof(CommandWidget)
});
if (!isCreateMode)
{
var actionsMenuWidget = new ActionMenuWidgetElement(toolbarSectionElement.Items)
{
Name = "moreActions",
Text = "MoreActions",
ResourceClassId = resourceClassId,
WrapperTagKey = HtmlTextWriterTag.Div,
WidgetType = typeof(ActionMenuWidget),
CssClass = "sfInlineBlock sfAlignMiddle"
};
actionsMenuWidget.MenuItems.Add(new CommandWidgetElement(actionsMenuWidget.MenuItems)
{
Name = DeleteCommandName,
Text = "DeleteThisJobApplication",
CommandName = DefinitionsHelper.DeleteCommandName,
ResourceClassId = resourceClassId,
WidgetType = typeof(CommandWidget),
CssClass = "sfDeleteItm"
});
toolbarSectionElement.Items.Add(actionsMenuWidget);
}
// Cancel
toolbarSectionElement.Items.Add(new CommandWidgetElement(toolbarSectionElement.Items)
{
Name = "CancelWidgetElement",
ButtonType = CommandButtonType.Cancel,
CommandName = DefinitionsHelper.CancelCommandName,
Text = backToItems,
ResourceClassId = resourceClassId,
WrapperTagKey = HtmlTextWriterTag.Span,
WidgetType = typeof(CommandWidget)
});
detailView.Toolbar.Sections.Add(toolbarSectionElement);
}
private static void CreateBackendSections(DetailFormViewElement detailView, FieldDisplayMode displayMode)
{
var mainSection = new ContentViewSectionElement(detailView.Sections)
{
Name = "MainSection",
CssClass = "sfFirstForm"
};
var firstNameField = new TextFieldDefinitionElement(mainSection.Fields)
{
ID = "firstNameFieldControl",
DataFieldName = "FirstName",
DisplayMode = displayMode,
Title = "FirstName",
CssClass = "sfTitleField",
ResourceClassId = typeof(JobsResources).Name,
WrapperTag = HtmlTextWriterTag.Li,
};
firstNameField.ValidatorConfig = new ValidatorDefinitionElement(firstNameField)
{
Required = true,
MessageCssClass = "sfError",
RequiredViolationMessage = Res.Get<JobsResources>().FirstNameCannotBeEmpty
};
mainSection.Fields.Add(firstNameField);
var lastNameField = new TextFieldDefinitionElement(mainSection.Fields)
{
ID = "lastNameFieldControl",
DataFieldName = "LastName",
DisplayMode = displayMode,
Title = "LastName",
CssClass = "sfTitleField",
ResourceClassId = typeof(JobsResources).Name,
WrapperTag = HtmlTextWriterTag.Li,
};
lastNameField.ValidatorConfig = new ValidatorDefinitionElement(lastNameField)
{
Required = true,
MessageCssClass = "sfError",
RequiredViolationMessage = Res.Get<JobsResources>().LastNameCannotBeEmpty
};
mainSection.Fields.Add(lastNameField);
var phoneNumberField = new TextFieldDefinitionElement(mainSection.Fields)
{
ID = "phoneNumberFieldControl",
DataFieldName = "Phone",
DisplayMode = displayMode,
Title = "PhoneNumber",
CssClass = "sfTitleField",
ResourceClassId = typeof(JobsResources).Name,
WrapperTag = HtmlTextWriterTag.Li,
};
phoneNumberField.ValidatorConfig = new ValidatorDefinitionElement(phoneNumberField)
{
Required = true,
MessageCssClass = "sfError",
RequiredViolationMessage = Res.Get<JobsResources>().PhoneNumberCannotBeEmpty,
RegularExpression = "^[0-9]+[.]*[0-9]*$",
RegularExpressionViolationMessage = Res.Get<JobsResources>().InvalidPhoneNumber
};
mainSection.Fields.Add(phoneNumberField);
var textField = new TextFieldDefinitionElement(mainSection.Fields)
{
ID = "motivationalTextFieldControl",
DataFieldName = "Text",
DisplayMode = displayMode,
Title = "MotivationalText",
CssClass = "sfTitleField",
WrapperTag = HtmlTextWriterTag.Li,
ResourceClassId = typeof(JobsResources).Name,
Rows = 5
};
textField.ExpandableDefinitionConfig = new ExpandableControlElement(textField)
{
Expanded = false,
ExpandText = Res.Get<JobsResources>().ClickToAddSummary
};
textField.ValidatorConfig = new ValidatorDefinitionElement(textField)
{
Required = true,
MessageCssClass = "sfError",
RequiredViolationMessage = Res.Get<JobsResources>().MotivationalTextCannotBeEmpty
};
mainSection.Fields.Add(textField);
var referrer = new ChoiceFieldElement(mainSection.Fields)
{
RenderChoiceAs = Telerik.Sitefinity.Web.UI.Fields.Enums.RenderChoicesAs.DropDown,
ID = "referrerChoices",
DataFieldName = "Referral",
DisplayMode = displayMode,
Title = "HowDidYouHear",
CssClass = "sfTitleField",
WrapperTag = HtmlTextWriterTag.Li,
ResourceClassId = typeof(JobsResources).Name,
};
var internetAdField = new ChoiceElement(referrer.ChoicesConfig)
{
Text = Res.Get<JobsResources>().InternetAd,
Value = Res.Get<JobsResources>().InternetAd,
};
referrer.ChoicesConfig.Add(internetAdField);
var mobilePhoneAdField = new ChoiceElement(referrer.ChoicesConfig)
{
Text = Res.Get<JobsResources>().MobilePhoneAd,
Value = Res.Get<JobsResources>().MobilePhoneAd,
};
referrer.ChoicesConfig.Add(mobilePhoneAdField);
var socialNetworkField = new ChoiceElement(referrer.ChoicesConfig)
{
Text = Res.Get<JobsResources>().SocialNetwork,
Value = Res.Get<JobsResources>().SocialNetwork,
};
referrer.ChoicesConfig.Add(socialNetworkField);
var televisionAdField = new ChoiceElement(referrer.ChoicesConfig)
{
Text = Res.Get<JobsResources>().TelevisionAd,
Value = Res.Get<JobsResources>().TelevisionAd,
};
referrer.ChoicesConfig.Add(televisionAdField);
var webLinkField = new ChoiceElement(referrer.ChoicesConfig)
{
Text = Res.Get<JobsResources>().WebLink,
Value = Res.Get<JobsResources>().WebLink,
};
referrer.ChoicesConfig.Add(webLinkField);
var webSearchField = new ChoiceElement(referrer.ChoicesConfig)
{
Text = Res.Get<JobsResources>().WebSearch,
Value = Res.Get<JobsResources>().WebSearch,
};
referrer.ChoicesConfig.Add(webSearchField);
var magazineAdField = new ChoiceElement(referrer.ChoicesConfig)
{
Text = Res.Get<JobsResources>().MagazineAd,
Value = Res.Get<JobsResources>().MagazineAd,
};
referrer.ChoicesConfig.Add(magazineAdField);
var otherField = new ChoiceElement(referrer.ChoicesConfig)
{
Text = Res.Get<JobsResources>().Other,
Value = Res.Get<JobsResources>().Other,
};
referrer.ChoicesConfig.Add(otherField);
mainSection.Fields.Add(referrer);
detailView.Sections.Add(mainSection);
}