private void _auth0LVM_PropertyChanged(object sender, PropertyChangedEventArgs e) { Auth0Model loginm = sender as Auth0Model; if (loginm == null) { return; } string propertyName = e.PropertyName; if (propertyName == "IsUserLoggedIn") { if (!loginm.IsUserLoggedIn) { if (this._wanServer != null) { this._wanServer.Disconnect(); } RadioList.RemoveAllWanRadios(); _userSettingsEditor.Clear(); _userSettingsServer.Clear(); return; } this._wanConnectARE.Set(); } }
public CraftingForm(CraftingModule craftingSystem, PlayerStatus inventory, Form previousForm, IMouse mouse, Engine.IDrawer drawer, IGameScene scene) : base(new Color(100, 200, 255), 300, previousForm, mouse, drawer) { this.craftingSystem = craftingSystem; this.inventory = inventory; Scene = scene; controls.Add(new Label(new Vector2(-80, 90), "Rcepies", 30, drawer, mouse)); allCraftings = new RadioList(new Vector2(-80, 70), 6, drawer, mouse); allCraftings.OnSelectionChange += AllCraftings_OnSelectionChange; controls.Add(allCraftings); controls.Add(new Label(new Vector2(0, 95), "Requirements", 30, drawer, mouse)); neededItems = new RadioList(new Vector2(0, 75), 2, drawer, mouse, true); controls.Add(neededItems); controls.Add(new Label(new Vector2(0, 20), "Inventory", 30, drawer, mouse)); havedItems = new RadioList(new Vector2(0, 0), 4, drawer, mouse, true); controls.Add(havedItems); controls.Add(new Button(new Vector2(-50, -90), "Craft", 20, CraftItem, drawer, mouse) { color = new Color(204, 51, 153) }); controls.Add(new Button(new Vector2(-50, -60), "Filter", 20, Filter, drawer, mouse) { color = new Color(104, 51, 153) }); }
protected virtual MvcDynamicForms.Fields.Field GetRadioList(FieldAttributes fieldAttributes, double formWidth, double formHeight, string controlValue) { var radiolist = new RadioList(fieldAttributes, formWidth, formHeight) { Value = controlValue }; return(radiolist); }
private void _wanServer_PropertyChanged(object sender, PropertyChangedEventArgs e) { WanServer wanServer = sender as WanServer; if (wanServer == null) { return; } string propertyName = e.PropertyName; if (propertyName == "UserSettings") { WanUserSettings wanUserSettings = (WanUserSettings)wanServer.UserSettings.Clone(); bool flag = false; if (string.IsNullOrEmpty(wanUserSettings.FirstName)) { wanUserSettings.FirstName = this._auth0LVM.GivenName; if (!string.IsNullOrEmpty(wanUserSettings.FirstName)) { flag = true; } } if (string.IsNullOrEmpty(wanUserSettings.LastName)) { wanUserSettings.LastName = this._auth0LVM.FamilyName; if (!string.IsNullOrEmpty(wanUserSettings.LastName)) { flag = true; } } this.UserSettingsEditor = (WanUserSettings)wanUserSettings.Clone(); this.UserSettingsServer = (WanUserSettings)wanUserSettings.Clone(); if (flag) { this._wanServer.SendSetUserInfoToServer(this._auth0LVM.GetFreshJwt(), this._userSettingsEditor); } this.SaveUserTitle = "Save"; } else if (propertyName == "SslClientPublicIp") { this.ApplicationPublicIp = wanServer.SslClientPublicIp; } else if (propertyName == "IsConnected") { this.IsWanServerConnected = wanServer.IsConnected; if (!wanServer.IsConnected) { RadioList.RemoveAllWanRadios(); _wanConnectARE.Set(); return; } this._wanServer.SendRegisterApplicationMessageToServer(API.ProgramName, "Windows", this._auth0LVM.GetFreshJwt()); } }
/// <summary> /// 选择窗口 /// </summary> /// <param name="tbName">表名,文件名称</param> /// <param name="txtId">显示ID的TextBox</param> /// <param name="txtName">显示编译值的TextBox</param> /// <param name="row">需要显示的列</param> /// <param name="selType">1 radio 单选,2 Multi 多选</param> public static void OpenChooseForm(string tbName, string[] row, TextBox txtId, TextBox txtName, Const.OpenType selType) { ChooseData cd = new ChooseData() { TextId = txtId, TextName = txtName, Row = row, TableName = tbName, SelType = selType }; RadioList rl = new RadioList(cd); rl.ShowDialog(); }
/// <summary> /// 按数据类型创建查询条件控件并加到页面中 /// </summary> /// <param name="_ReportQueryConditions"></param> /// <param name="_ParentControl"></param> public void CreateQueryCondition(Control _ParentControl) { foreach (var _QueryCondition in _ReportQueryConditions) { //控件外层 var divItem = new System.Web.UI.HtmlControls.HtmlGenericControl("div"); if (_QueryCondition.IsFullRow == true) { divItem.Attributes["class"] = "item_box_col2"; } else { divItem.Attributes["class"] = "item_box_col1"; } //控件标题 var divSpan = new System.Web.UI.HtmlControls.HtmlGenericControl("span"); divSpan.InnerText = _QueryCondition.DisplayText; divItem.Controls.Add(divSpan); //控件 Control _control = null; var _field = _entityCache.FindById <SysField>(_QueryCondition.FieldId); switch ((DataTypeEnum)_QueryCondition.DataType) { case DataTypeEnum.pbool: _control = new RadioList(); break; case DataTypeEnum.pdatetime: _control = new DateTimeControl(); break; case DataTypeEnum.pdecimal: _control = new TextControl(); (_control as TextControl).TextType = TextControl.TextTypes.Decimal; break; case DataTypeEnum.penum: _control = new ComboControl(); var _enumControl = _control as ComboControl; _enumControl.AutoSelectFirst = true; _enumControl.ShowEmptyItem = true; foreach (var item in _field.RefEnum.EnumItems) { _enumControl.Items.Add(new ComboItem() { Text = item.DisplayText, Value = item.ItemId.ToString() }); } _enumControl.DataBind(); break; case DataTypeEnum.pfloat: _control = new TextControl(); (_control as TextControl).TextType = TextControl.TextTypes.Float; break; case DataTypeEnum.pint: _control = new TextControl(); (_control as TextControl).TextType = TextControl.TextTypes.Int32; break; case DataTypeEnum.plong: _control = new TextControl(); (_control as TextControl).TextType = TextControl.TextTypes.Int64; break; case DataTypeEnum.pref: _control = new ComboControl(); var _refControl = _control as ComboControl; _refControl.AutoSelectFirst = true; var _EntitySchema = Drision.Framework.Manager.IEntitySchemaHelper.Get(_field.RefRelation.ParentEntity.EntityName); var _DataList = this._DataHelper.FetchAll(_EntitySchema.EntityType); foreach (var item in _DataList) { _refControl.Items.Add(new ComboItem() { Text = _EntitySchema.GetDisplayValue(item), Value = _EntitySchema.GetKeyValue(item).ToString() }); } _refControl.ShowEmptyItem = true; break; case DataTypeEnum.pstring: case DataTypeEnum.ptext: _control = new TextControl(); (_control as TextControl).TextType = TextControl.TextTypes.String; break; default: //case DataTypeEnum.MultiRef: //case DataTypeEnum.pbinary: //case DataTypeEnum.pfile: //case DataTypeEnum.pkey: //case DataTypeEnum.ppassword: throw new Exception("暂不支持 多引用、二进制、附件、主键、密码等类型的字段作为查询条件!"); } if (_control != null) { _control.ID = _QueryCondition.ControlName; (_control as IDrisionControl).FieldName = _QueryCondition.FieldId.ToString(); (_control as IDrisionControl).Tag = _QueryCondition.IsSubQuery == true ? "IsSubQuery" : ""; } divItem.Controls.Add(_control); _ParentControl.Controls.Add(divItem); } //最后加一个cl var divcl = new System.Web.UI.HtmlControls.HtmlGenericControl("div"); divcl.Attributes["class"] = "cl"; _ParentControl.Controls.Add(divcl); }
public ActionResult Respond(string shortPath) { var thisForm = _mvcForms.Forms.FirstOrDefault(form => form.ShortPath == shortPath); if (thisForm != null) { ViewData["FormName"] = thisForm.FormName; //Only retrieve non-hidden fields var formFields = _mvcForms.FormFields.Where(formitems => formitems.FormUid == thisForm.Uid & formitems.IsHidden == 0).OrderBy( formitem => formitem.SortOrder); //CUSTOM, reference http://mvcdynamicforms.codeplex.com/ //Using the MVC Dynamic Form project, build a form comprised of fields tied to the form items used by this custom form //TODO: Consider switching to conditionally build views using partial views with the KnockOutJS library for custom validation if (formFields.Count() > 0) { var dynamicFormFields = new List<Field>(); foreach (var formField in formFields) { var field = formField; var thisFieldType = _mvcForms.FormFieldTypes.Single(fieldtype => fieldtype.Uid == field.FormFieldTypeUid); switch (thisFieldType.FieldType) { case ("Literal"): dynamicFormFields.Add(new TextBox() { Key = field.Uid.ToString(), Template = String.Format("<p>{0}</p>", field.LiteralText.KillHtml()), DisplayOrder = field.SortOrder }); break; case ("TextBox"): dynamicFormFields.Add(new TextBox() { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, DisplayOrder = field.SortOrder, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty, RegularExpression = (!string.IsNullOrEmpty(thisFieldType.RegExDefault)) ? thisFieldType.RegExDefault : string.Empty, RegexMessage = (!string.IsNullOrEmpty(thisFieldType.RegExDefault)) ? thisFieldType.ErrorMsgRegEx.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty }); break; case ("TextArea"): var newTextArea = new TextArea() { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, DisplayOrder = field.SortOrder, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty, RegularExpression = (!string.IsNullOrEmpty(thisFieldType.RegExDefault)) ? thisFieldType.RegExDefault : string.Empty, RegexMessage = (!string.IsNullOrEmpty(thisFieldType.RegExDefault)) ? thisFieldType.ErrorMsgRegEx.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty }; int number; if (Int32.TryParse(field.Rows.ToString(), out number)) newTextArea.InputHtmlAttributes.Add("rows", field.Rows.ToString()); if (Int32.TryParse(field.Cols.ToString(), out number)) newTextArea.InputHtmlAttributes.Add("cols", field.Cols.ToString()); dynamicFormFields.Add(newTextArea); break; case ("SelectList"): var newSelectList = new Select { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, DisplayOrder = field.SortOrder, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty }; if (Convert.ToBoolean(field.IsMultipleSelect)) { newSelectList.MultipleSelection = true; newSelectList.Size = Convert.ToInt32(field.ListSize); newSelectList.CommaDelimitedChoices = field.Options.Replace(Environment.NewLine, ","); } else { newSelectList.ShowEmptyOption = Convert.ToBoolean(field.IsEmptyOption); newSelectList.EmptyOption = (Convert.ToBoolean(field.IsEmptyOption)) ? field.EmptyOption : null; newSelectList.CommaDelimitedChoices = field.Options.Replace(Environment.NewLine, ","); } dynamicFormFields.Add(newSelectList); break; case ("CheckBox"): var newCheckBox = new CheckBox { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, DisplayOrder = field.SortOrder, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty }; dynamicFormFields.Add(newCheckBox); break; case ("CheckBoxList"): var newCheckBoxList = new CheckBoxList { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, DisplayOrder = field.SortOrder, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty, CommaDelimitedChoices = field.Options.Replace(Environment.NewLine, ","), Orientation = (field.Orientation == "vertical") ? Orientation.Vertical : Orientation.Horizontal }; dynamicFormFields.Add(newCheckBoxList); break; case ("RadioList"): var newRadioList = new RadioList { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, DisplayOrder = field.SortOrder, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty, CommaDelimitedChoices = field.Options.Replace(Environment.NewLine, ","), Orientation = (field.Orientation == "vertical") ? Orientation.Vertical : Orientation.Horizontal }; dynamicFormFields.Add(newRadioList); break; case ("FileUpload"): var newFileUpload = new FileUpload { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, InvalidExtensionError = field.ErrorExtensions, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty, DisplayOrder = field.SortOrder, }; if (!string.IsNullOrEmpty(field.ValidExtensions)) newFileUpload.ValidExtensions = "." + field.ValidExtensions.Replace(Environment.NewLine, ",."); var user = Membership.GetUser(User.Identity.Name); UserKey = user.ProviderUserKey.ToString(); newFileUpload.Validated += FileValidated; newFileUpload.Posted += FilePosted; dynamicFormFields.Add(newFileUpload); break; } } var dynamicForm = new MvcDynamicForms.Form(); dynamicForm.AddFields(dynamicFormFields.ToArray()); dynamicForm.Serialize = true; ViewData["FormUid"] = thisForm.Uid; return View(dynamicForm); } } return RedirectToAction("Index", "Home"); }
public ActionResult Respond(string shortPath) { var thisForm = _mvcForms.Forms.FirstOrDefault(form => form.ShortPath == shortPath); if (thisForm != null) { ViewData["FormName"] = thisForm.FormName; //Only retrieve non-hidden fields var formFields = _mvcForms.FormFields.Where(formitems => formitems.FormUid == thisForm.Uid & formitems.IsHidden == 0).OrderBy( formitem => formitem.SortOrder); //CUSTOM, reference http://mvcdynamicforms.codeplex.com/ //Using the MVC Dynamic Form project, build a form comprised of fields tied to the form items used by this custom form //TODO: Consider switching to conditionally build views using partial views with the KnockOutJS library for custom validation if (formFields.Count() > 0) { var dynamicFormFields = new List <Field>(); foreach (var formField in formFields) { var field = formField; var thisFieldType = _mvcForms.FormFieldTypes.Single(fieldtype => fieldtype.Uid == field.FormFieldTypeUid); switch (thisFieldType.FieldType) { case ("Literal"): dynamicFormFields.Add(new TextBox() { Key = field.Uid.ToString(), Template = String.Format("<p>{0}</p>", field.LiteralText.KillHtml()), DisplayOrder = field.SortOrder }); break; case ("TextBox"): dynamicFormFields.Add(new TextBox() { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, DisplayOrder = field.SortOrder, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty, RegularExpression = (!string.IsNullOrEmpty(thisFieldType.RegExDefault)) ? thisFieldType.RegExDefault : string.Empty, RegexMessage = (!string.IsNullOrEmpty(thisFieldType.RegExDefault)) ? thisFieldType.ErrorMsgRegEx.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty }); break; case ("TextArea"): var newTextArea = new TextArea() { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, DisplayOrder = field.SortOrder, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty, RegularExpression = (!string.IsNullOrEmpty(thisFieldType.RegExDefault)) ? thisFieldType.RegExDefault : string.Empty, RegexMessage = (!string.IsNullOrEmpty(thisFieldType.RegExDefault)) ? thisFieldType.ErrorMsgRegEx.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty }; int number; if (Int32.TryParse(field.Rows.ToString(), out number)) { newTextArea.InputHtmlAttributes.Add("rows", field.Rows.ToString()); } if (Int32.TryParse(field.Cols.ToString(), out number)) { newTextArea.InputHtmlAttributes.Add("cols", field.Cols.ToString()); } dynamicFormFields.Add(newTextArea); break; case ("SelectList"): var newSelectList = new Select { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, DisplayOrder = field.SortOrder, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty }; if (Convert.ToBoolean(field.IsMultipleSelect)) { newSelectList.MultipleSelection = true; newSelectList.Size = Convert.ToInt32(field.ListSize); newSelectList.CommaDelimitedChoices = field.Options.Replace(Environment.NewLine, ","); } else { newSelectList.ShowEmptyOption = Convert.ToBoolean(field.IsEmptyOption); newSelectList.EmptyOption = (Convert.ToBoolean(field.IsEmptyOption)) ? field.EmptyOption : null; newSelectList.CommaDelimitedChoices = field.Options.Replace(Environment.NewLine, ","); } dynamicFormFields.Add(newSelectList); break; case ("CheckBox"): var newCheckBox = new CheckBox { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, DisplayOrder = field.SortOrder, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty }; dynamicFormFields.Add(newCheckBox); break; case ("CheckBoxList"): var newCheckBoxList = new CheckBoxList { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, DisplayOrder = field.SortOrder, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty, CommaDelimitedChoices = field.Options.Replace(Environment.NewLine, ","), Orientation = (field.Orientation == "vertical") ? Orientation.Vertical : Orientation.Horizontal }; dynamicFormFields.Add(newCheckBoxList); break; case ("RadioList"): var newRadioList = new RadioList { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, DisplayOrder = field.SortOrder, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty, CommaDelimitedChoices = field.Options.Replace(Environment.NewLine, ","), Orientation = (field.Orientation == "vertical") ? Orientation.Vertical : Orientation.Horizontal }; dynamicFormFields.Add(newRadioList); break; case ("FileUpload"): var newFileUpload = new FileUpload { Key = field.Uid.ToString(), ResponseTitle = field.FormFieldName, Prompt = (!string.IsNullOrEmpty(field.FormFieldPrompt)) ? field.FormFieldPrompt : null, InvalidExtensionError = field.ErrorExtensions, Required = Convert.ToBoolean(field.IsRequired), RequiredMessage = Convert.ToBoolean(field.IsRequired) ? thisFieldType.ErrorMsgRequired.Replace( "%FormFieldName%", field.FormFieldName) : string.Empty, DisplayOrder = field.SortOrder, }; if (!string.IsNullOrEmpty(field.ValidExtensions)) { newFileUpload.ValidExtensions = "." + field.ValidExtensions.Replace(Environment.NewLine, ",."); } var user = Membership.GetUser(User.Identity.Name); UserKey = user.ProviderUserKey.ToString(); newFileUpload.Validated += FileValidated; newFileUpload.Posted += FilePosted; dynamicFormFields.Add(newFileUpload); break; } } var dynamicForm = new MvcDynamicForms.Form(); dynamicForm.AddFields(dynamicFormFields.ToArray()); dynamicForm.Serialize = true; ViewData["FormUid"] = thisForm.Uid; return(View(dynamicForm)); } } return(RedirectToAction("Index", "Home")); }
public static Form GetForm() { /* * This method sets up the Form and Field objects that * are needed to dynamically generate html forms at runtime. * * Of course, there are other ways of going about defining your forms and their fields. * I used a static class in this demo application for simplicity. * In the real world, you could store your field definitions anywhere. * * For example, you could create a database table to store all * of the data needed to create the form fields below. * Some of your end users could have access to some kind of interface to create, update, * or delete the form field definitions in the database. * This described scenario was actually the inspiration for this project. * * There are 7 different Field types that can be used to construct the form: * - TextBox (single line text input) * - Textarea (multi line text input) * - Checkbox * - CheckboxList * - RadioList * - Select (Drop down lists and List boxes) * - Literal (Any custom html at all. For display purposes only (no user input)) * * Each Field type have a few things in common: * - Title property: Used when storing end user's responses. * - Prompt property: Question asked to the user for each field. * - DisplayOrder property: The order that the field is displayed to the user. * - Required property: Is the user required to complete the field? * - InputHtmlAttributes: Allows the developer to set the input elements html attributes * * There are other properties and behaviors that some Field types do not share with each other. * Take a look through the members of each Type to see what you can do. * Much of each type's unique functionality is demonstrated below. * Feel free to tinker around in this file, changing and adding fields. * Don't forget to add newly created fields to the Form. * * The Form object is the object that contains all of your Field objects, * triggers validation and rendering, and lets the developer access user responses. * When constructing your form, you can use Form.AddFields() to get your Fields * into the form (imagine that!). * * Check out * /Controllers/HomeController.cs * /Views/Home/Demo.cshtml * /Views/Home/Responses.cshtml * to learn how to use the Form object in your web application. */ // create fields var description = new Literal { Key = "description", Template = String.Format("<p>{0}</p>", PlaceHolders.Literal), DisplayOrder = 10, Html = "This is a dynamically generated form. All of the input fields on this form are generated at runtime." }; var name = new TextBox { ResponseTitle = "Name", Prompt = "Enter your full name:", DisplayOrder = 20, Required = true, RequiredMessage = "Your full name is required", }; var gender = new RadioList { DisplayOrder = 30, ResponseTitle = "Gender", Prompt = "Select your gender:", Required = true, Orientation = Orientation.Vertical }; gender.AddChoices("Male,Female", ","); var email = new TextBox { DisplayOrder = 25, ResponseTitle = "Email Address", Prompt = "Enter your email address:", Required = true, RegexMessage = "Must be a valid email address", RegularExpression = @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$" }; var sports = new CheckBoxList { DisplayOrder = 40, ResponseTitle = "Favorite Sports", Prompt = "What are your favorite sports?", Orientation = Orientation.Horizontal }; sports.AddChoices("Baseball,Football,Soccer,Basketball,Tennis,Boxing,Golf", ","); var states = new Select { DisplayOrder = 50, ResponseTitle = "Visited States", MultipleSelection = true, Size = 10, Prompt = "What US states have you visited? (Use the ctrl key to select multiple states.)" }; states.AddChoices( "Alabama,Alaska,Arizona,Arkansas,California,Colorado,Connecticut,Delaware,Florida,Georgia,Hawaii,Idaho,Illinois,Indiana,Iowa,Kansas,Kentucky,Louisiana,Maine,Maryland,Massachusetts,Michigan,Minnesota,Mississippi,Missouri,Montana,Nebraska,Nevada,New Hampshire,New Jersey,New Mexico,New York,North Carolina,North Dakota,Ohio,Oklahoma,Oregon,Pennsylvania,Rhode Island,South Carolina,South Dakota,Tennessee,Texas,Utah,Vermont,Virginia,Washington,West Virginia,Wisconsin,Wyoming", ","); var bio = new TextArea { DisplayOrder = 60, ResponseTitle = "Bio", Prompt = "Describe yourself:" }; bio.InputHtmlAttributes.Add("cols", "40"); bio.InputHtmlAttributes.Add("rows", "6"); var month = new Select { DisplayOrder = 70, ResponseTitle = "Month Born", Prompt = "What month were you born in?", ShowEmptyOption = true, EmptyOption = "- Select One - " }; month.AddChoices("January,February,March,April,May,June,July,August,September,October,November,December", ","); var agree = new CheckBox { DisplayOrder = 80, ResponseTitle = "Agrees To Terms", Prompt = "I agree to all of the terms in the EULA.", Required = true, RequiredMessage = "You must agree to the EULA!" }; var eula = new Literal { DisplayOrder = 75, Html = string.Format(@"<textarea readonly=""readonly"" rows=""8"" cols=""60"">{0}</textarea>", GetEULA()) }; var file = new FileUpload { Prompt = "Your photo", InvalidExtensionError = "Image files only.", ValidExtensions = ".jpg,.gif,.png", Required = true, DisplayOrder = 73, UseMultiple = true }; file.Validated += new ValidatedEventHandler(file_Validated); file.Posted += new FilePostedEventHandler(file_Posted); var hidden = new Hidden { ResponseTitle = "A Hidden Field", Value = "some value" }; // create form and add fields to it var form = new Form(); form.AddFields(description, name, gender, email, sports, states, bio, month, agree, eula, file, hidden); return(form); }