public RadioButtonPairModel() { inputPairOneValue = 1; inputPairTwoValue = 2; labelPairOneText = "One"; labelPairTwoText = "Two"; htmlAttributesInputPairOne = new Dictionary<string, object>(); htmlAttributesInputPairTwo = new Dictionary<string, object>(); htmlAttributesLabelPairOne = new Dictionary<string, object>(); htmlAttributesLabelPairTwo = new Dictionary<string, object>(); RadioStyle = CheckBoxRadioStyle.Block; }
public static HtmlString RenderInputListContainer(HtmlHelper html, string htmlFieldName, List<string> inputs, int? numberOfColumns, bool displayInColumnsCondition, int columnPixelWidth, bool displayInlineBlock, int marginRightPx, bool displayValidationMessage, HelpTextStyle validationMessageStyle, InputType inputType, CheckBoxRadioStyle inputStyle) { var cssClass = inputType == InputType.CheckBoxList ? "checkbox" : "radio"; var displayStyle = inputStyle == CheckBoxRadioStyle.Block ? "form-block" : "form-inline"; var container = new TagBuilder("div"); container.AddCssClass($"{cssClass} {displayStyle}"); if (displayValidationMessage) { container.AddCssStyle("display", "inline-block"); container.AddCssStyle("vertical-align", "middle"); container.AddCssStyle("margin-top", "4px"); } if (numberOfColumns.HasValue && displayInColumnsCondition) { container.AddCssStyle("max-width", columnPixelWidth*numberOfColumns + "px"); var columnedInputs = new List<string>(); var columnDiv = new TagBuilder("div"); columnDiv.AddCssClass("input-list-column"); columnDiv.AddCssStyle("width", columnPixelWidth + "px"); columnDiv.AddCssStyle("display", "inline-block"); foreach (var input in inputs) { columnDiv.InnerHtml = input; columnedInputs.Add(columnDiv.ToString()); } inputs = columnedInputs; } if (displayInlineBlock) { var columnedInputs = new List<string>(); var columnDiv = new TagBuilder("div"); columnDiv.AddCssClass("input-list-inline"); columnDiv.AddCssStyle("display", "inline-block"); columnDiv.AddCssStyle("margin-right", marginRightPx + "px"); foreach (var input in inputs) { columnDiv.InnerHtml = input; columnedInputs.Add(columnDiv.ToString()); } inputs = columnedInputs; } var inputsCombined = string.Empty; inputs.ForEach(c => inputsCombined += c); container.InnerHtml = inputsCombined; var validationMessage = ""; if (displayValidationMessage) { var validation = html.ValidationMessage(htmlFieldName).ToHtmlString(); validationMessage = new HelpText(validation, validationMessageStyle).ToHtmlString(); } return new HtmlString(container.ToString(TagRenderMode.Normal) + validationMessage); }
/// <summary> /// Display style for radio: inline or block /// </summary> /// <param name="radioStyle"></param> /// <returns></returns> public RadioButtonPair DisplayStyle(CheckBoxRadioStyle radioStyle) { this._model.RadioStyle = radioStyle; return this; }