public string RenderBsLabel <TFormModel>(FormControlPropertyMetadata propertyMetadata, TFormModel formModel) { var labelBuilder = new TagBuilder("label"); var name = propertyMetadata.PropertyInfo.Name; var displayName = propertyMetadata.DisplayAttribute.Name; switch (propertyMetadata.BsControlAttribute.ControlType) { case BsControlType.DropDownList: case BsControlType.ListBox: case BsControlType.TagList: { name = name + ".SelectedValues"; break; } default: { break; } } var id = GetIdAttributeFromName(name); labelBuilder.AddCssClass("control-label " + (propertyMetadata.RequiredAttribute != null ? "required" : "")); labelBuilder.MergeAttribute("for", id); labelBuilder.InnerHtml = displayName; return(labelBuilder.ToString()); }
public string RenderFormGroup <TFormModel>(FormControlPropertyMetadata propertyMetadata, TFormModel formModel) { var controlHtml = RenderFormControl(propertyMetadata, formModel); var formGroupBuilder = new TagBuilder("div"); var inputGroupBuilder = new TagBuilder("div"); var width = propertyMetadata.FormGroupAttribute != null ? propertyMetadata.FormGroupAttribute.Width : ColumnWidth.Large; formGroupBuilder.AddCssClass("form-group " + width.GetDescription()); inputGroupBuilder.AddCssClass("input-group"); var glyphiconAddonHtml = String.Empty; if (propertyMetadata.FormGroupAttribute != null && propertyMetadata.FormGroupAttribute.GlyphiconAddon != Glyphicon.Custom) { var glyphicon = propertyMetadata.FormGroupAttribute.GlyphiconAddon; var glyphiconAddonbuilder = new TagBuilder("span"); glyphiconAddonbuilder.AddCssClass("input-group-addon glyphicon " + glyphicon.GetDescription()); glyphiconAddonHtml = glyphiconAddonbuilder.ToString(); } inputGroupBuilder.InnerHtml = glyphiconAddonHtml + controlHtml; formGroupBuilder.InnerHtml = RenderBsLabel(propertyMetadata, formModel) + inputGroupBuilder.ToString(); return(formGroupBuilder.ToString()); }
public string RenderBsDropdown <TFormModel>(FormControlPropertyMetadata propertyMetadata, TFormModel formModel) { var selectBuilder = GetBsSelectTagBuilder(propertyMetadata, formModel); selectBuilder.AddCssClass("bs-dropdown"); return(selectBuilder.ToString()); }
public string RenderBsTagList <TFormModel>(FormControlPropertyMetadata propertyMetadata, TFormModel formModel) { var selectBuilder = GetBsSelectTagBuilder(propertyMetadata, formModel); selectBuilder.AddCssClass("bs-tag-list"); selectBuilder.MergeAttribute("style", "display:none;"); return(selectBuilder.ToString()); }
public string RenderRadioButtonList <TFormModel>(FormControlPropertyMetadata propertyMetadata, TFormModel formModel, object value = null) { var controlValue = value ?? propertyMetadata.PropertyInfo.GetValue(formModel); var bsSelectlistItems = controlValue.GetType().GetProperty("Items").GetValue(controlValue, null) as List <BsSelectListItem>; var selectedValues = controlValue.GetType().GetProperty("SelectedValues").GetValue(controlValue, null) as string; var bsSelectList = new BsSelectList <string> { Items = bsSelectlistItems, SelectedValues = selectedValues }; return(_helper.BsRadioList <string>(bsSelectList, propertyMetadata.BsControlAttribute.ControlType, propertyMetadata.PropertyInfo.Name, null, false).ToString()); }
public TagBuilder GetBsSelectTagBuilder <TFormModel>(FormControlPropertyMetadata propertyMetadata, TFormModel formModel) { var bsSelectListItems = GetBsSelectListItems(propertyMetadata, formModel); var selectBuilder = new TagBuilder("select"); selectBuilder.AddCssClass("form-control bs-hasBformsSelect"); foreach (var bsSelectListItem in bsSelectListItems) { var optionBuilder = new TagBuilder("option"); optionBuilder.MergeAttribute("value", bsSelectListItem.Value); optionBuilder.InnerHtml = bsSelectListItem.Text; selectBuilder.InnerHtml += optionBuilder.ToString(); } return(selectBuilder); }
private List <BsSelectListItem> GetBsSelectListItems <TFormModel>(FormControlPropertyMetadata propertyMetadata, TFormModel formModel) { var controlValue = propertyMetadata.PropertyInfo.GetValue(formModel); var bsSelectlistItems = controlValue.GetType().GetProperty("Items").GetValue(controlValue, null) as List <BsSelectListItem>; var selectedValues = controlValue.GetType().GetProperty("SelectedValues").GetValue(controlValue, null) as List <object>; var selectedValuesStrings = selectedValues != null ? selectedValues.Select(x => x.ToString()) : new List <string>(); var items = bsSelectlistItems != null ? bsSelectlistItems.Select(x => new BsSelectListItem { Text = x.Text, Value = x.Value, Selected = selectedValuesStrings.Contains(x.Value) }) : new List <BsSelectListItem>(); return(items.ToList()); }
public string RenderBsNumberPickerInline <TFormModel>(FormControlPropertyMetadata propertyMetadata, TFormModel formModel) { var controlName = propertyMetadata.PropertyInfo.Name; var controlId = GetIdAttributeFromName(controlName); var controlValue = propertyMetadata.PropertyInfo.GetValue(formModel); var textInputBuilder = new TagBuilder("input"); var numberInputBuilder = new TagBuilder("input"); textInputBuilder.AddCssClass("form-control bs-number-inline bs-number-single_range_inline"); textInputBuilder.MergeAttribute("name", controlName + ".TextValue"); textInputBuilder.MergeAttribute("id", controlId + "_TextValue"); textInputBuilder.MergeAttribute("type", "text"); textInputBuilder.MergeAttribute("value", controlValue.ToString()); numberInputBuilder.AddCssClass("bs-number-value"); numberInputBuilder.MergeAttribute("data-for", controlName + ".TextValue"); numberInputBuilder.MergeAttribute("name", controlName + ".ItemValue"); numberInputBuilder.MergeAttribute("id", controlId + "_ItemValue"); numberInputBuilder.MergeAttribute("type", "hidden"); numberInputBuilder.MergeAttribute("value", controlValue.ToString()); return(textInputBuilder.ToString() + numberInputBuilder.ToString()); }
internal string RenderFormControl <TFormModel>(FormControlPropertyMetadata propertyMetadata, TFormModel formModel) { var controlString = String.Empty; var bsControlType = propertyMetadata.BsControlAttribute.ControlType; var controlName = propertyMetadata.PropertyInfo.Name; var controlId = GetIdAttributeFromName(controlName); var controlValue = propertyMetadata.PropertyInfo.GetValue(formModel); var isRequired = propertyMetadata.RequiredAttribute != null; var requiredMessage = isRequired ? propertyMetadata.RequiredAttribute.ErrorMessage : String.Empty; switch (bsControlType) { case BsControlType.TextBox: { controlString = _helper.BsTextBox(controlName, controlValue).ToString(); break; } case BsControlType.TextArea: { controlString = _helper.BsTextArea(controlName, controlValue).ToString(); break; } case BsControlType.DropDownList: { controlString = RenderBsDropdown(propertyMetadata, formModel); break; } case BsControlType.ListBox: { controlString = RenderBsListBox(propertyMetadata, formModel); break; } case BsControlType.TagList: { controlString = RenderBsTagList(propertyMetadata, formModel); break; } case BsControlType.RadioButtonList: { controlString = RenderRadioButtonList(propertyMetadata, formModel); break; } case BsControlType.NumberInline: { controlString = RenderBsNumberPickerInline(propertyMetadata, formModel); break; } default: { break; } } return(controlString); }