public static MvcHtmlString ExtDisplayNumberFor <TModel, TValue>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TValue> > expression, NumberOptionLarge option = null, object htmlAttributes = null) { var html = htmlAttributes == null ? new RouteValueDictionary() : new RouteValueDictionary(htmlAttributes); var stringBuilder = new StringBuilder(); stringBuilder.AppendLine(htmlHelper.ExtDisplayWidthId(expression, html).ToString()); var controlId = HtmlAttributeHelper.GetControlIdFromExpression(expression); if (html.ContainsKey("id")) { var tempId = html["id"].ToString(); if (!string.IsNullOrEmpty(tempId)) { controlId = tempId; } } stringBuilder.AppendLine("<script>$(function(){"); var options = new List <string>() { "aSep: ','", "aDec: '.'" }; if (option != null) { if (option.Min.HasValue) { options.Add($"vMin: '{option.Min.Value}'"); } if (option.Max.HasValue) { options.Add($"vMax: '{option.Max.Value}'"); } if (!string.IsNullOrEmpty(option.ASign)) { options.Add($"aSign: '{option.ASign}'"); } if (!string.IsNullOrEmpty(option.PSign)) { options.Add($"pSign: '{option.PSign}'"); } if (option.NumberOfDecimal.HasValue) { options.Add($"mDec : {option.NumberOfDecimal.Value}"); } if (!option.APad) { options.Add($"aPad : {Convert.ToBoolean("false")}"); } } var optionsStr = string.Join(", ", options); stringBuilder.AppendLine($"$('#{controlId}').autoNumeric('init', {{{optionsStr}}});"); stringBuilder.AppendLine("});</script>"); return(CustomControlHelper.GenerateWithValidationMessage(htmlHelper, stringBuilder.ToString(), expression)); }
public static MvcHtmlString ExtCheckBoxFor <TModel>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, bool> > expression, object htmlAttributes = null, string checkboxText = null, string selectfontweight = null, string tooltip = null) { var labelBuilder = new TagBuilder("label") { InnerHtml = htmlHelper.CheckBoxFor(expression, htmlAttributes).ToString() }; if (!string.IsNullOrEmpty(checkboxText)) { labelBuilder.InnerHtml += checkboxText; labelBuilder.Attributes["style"] = "font-weight: normal"; } if (!string.IsNullOrEmpty(selectfontweight) && selectfontweight == "bold") { labelBuilder.Attributes["style"] = "font-weight: bold"; } if (!string.IsNullOrEmpty(tooltip)) { labelBuilder.Attributes["title"] = tooltip; } var divBuilder = new TagBuilder("div") { InnerHtml = labelBuilder.ToString() }; //divBuilder.AddCssClass("checkbox"); var stringBuilder = new StringBuilder(); stringBuilder.Append(divBuilder); return(CustomControlHelper.GenerateWithValidationMessage(htmlHelper, stringBuilder.ToString(), expression)); }
public static MvcHtmlString ExtNumberFor <TModel, TValue>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TValue> > expression, NumberOption option = null, object htmlAttributes = null) { var html = HtmlAttributeHelper.AddDefaultClass(htmlAttributes); var maxLength = expression.MaxLength(); html = HtmlAttributeHelper.AddMaxLength(html, maxLength != 0 ? maxLength : 255); var stringBuilder = new StringBuilder(); stringBuilder.AppendLine(htmlHelper.TextBoxFor(expression, html).ToString()); var controlId = HtmlAttributeHelper.GetControlIdFromExpression(expression); stringBuilder.AppendLine("<script>$(function(){"); var options = new List <string>() { "aSep: ''", "aDec: '.'" }; if (option != null) { if (option.Min.HasValue) { options.Add($"vMin: '{option.Min.Value}'"); } if (option.Max.HasValue) { options.Add($"vMax: '{option.Max.Value}'"); } if (!string.IsNullOrEmpty(option.ASign)) { options.Add($"aSign: '{option.ASign}'"); } if (!string.IsNullOrEmpty(option.PSign)) { options.Add($"pSign: '{option.PSign}'"); } if (!string.IsNullOrEmpty(option.MRound)) { options.Add($"mRound: '{option.MRound}'"); } if (option.NumberOfDecimal.HasValue) { options.Add($"mDec : {option.NumberOfDecimal.Value}"); } if (!option.APad) { options.Add("aPad : false"); } } var optionsStr = string.Join(", ", options); stringBuilder.AppendLine($"$('#{controlId}').autoNumeric('init', {{{optionsStr}}});"); stringBuilder.AppendLine("});</script>"); return(CustomControlHelper.GenerateWithValidationMessage(htmlHelper, stringBuilder.ToString(), expression)); }
public static MvcHtmlString ExtDropDownListFor <TModel, TValue>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TValue> > expression, IEnumerable <SelectListItem> selectList, string optionLabel = null, object htmlAttributes = null) { var html = HtmlAttributeHelper.AddDefaultClass(htmlAttributes); return(CustomControlHelper.GenerateWithValidationMessage(htmlHelper, htmlHelper.DropDownListFor(expression, selectList, optionLabel, html).ToString(), expression)); }
private static MvcHtmlString ExtCheckBoxListSingleColumnFor <TModel, TValue>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, IEnumerable <TValue> > > expression, IEnumerable <SelectListItem> values, IEnumerable <TValue> selectedIds, object htmlAttributes = null) { var isDisabled = false; var html = htmlAttributes == null ? new RouteValueDictionary() : new RouteValueDictionary(htmlAttributes); if (html["disabled"] != null && html["disabled"].ToString() == "disabled") { isDisabled = true; } var selectedValues = selectedIds.Select(x => x.ToString()).ToList(); var variableName = ExpressionHelper.GetExpressionText(expression); var stringBuilder = new StringBuilder(); foreach (var selectListItem in values) { var itemName = htmlHelper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(variableName); var itemId = itemName + CustomControlHelper.GetControlCount(itemName); var divBuilder = new TagBuilder("div"); divBuilder.AddCssClass("checkbox"); if (isDisabled) { divBuilder.AddCssClass("disabled"); } var labelBuilder = new TagBuilder("label"); labelBuilder.MergeAttribute("for", itemId); var inputBuilder = new TagBuilder("input"); if (selectedValues.Contains(selectListItem.Value)) { inputBuilder.MergeAttribute("checked", "checked"); } if (isDisabled) { inputBuilder.MergeAttribute("disabled", "disabled"); } inputBuilder.MergeAttribute("id", itemId); inputBuilder.MergeAttribute("name", itemName); inputBuilder.MergeAttribute("type", "checkbox"); inputBuilder.MergeAttribute("value", selectListItem.Value); var labelInner = inputBuilder + selectListItem.Text; labelBuilder.InnerHtml = labelInner; divBuilder.InnerHtml = labelBuilder.ToString(); stringBuilder.Append(divBuilder); } return(CustomControlHelper.GenerateWithValidationMessage(htmlHelper, stringBuilder.ToString(), expression)); }
public static MvcHtmlString ExtTextBoxFor <TModel, TValue>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TValue> > expression, object htmlAttributes = null, string format = null) { var html = HtmlAttributeHelper.AddDefaultClass(htmlAttributes); var maxLength = expression.MaxLength(); html = HtmlAttributeHelper.AddMaxLength(html, maxLength != 0 ? maxLength : 255); return(CustomControlHelper.GenerateWithValidationMessage(htmlHelper, !string.IsNullOrEmpty(format) ? htmlHelper.TextBoxFor(expression, format, html).ToString() : htmlHelper.TextBoxFor(expression, html).ToString(), expression)); }
public static MvcHtmlString ExtTextAreaFor <TModel, TValue>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TValue> > expression, object htmlAttributes = null) { var html = HtmlAttributeHelper.AddDefaultClass(htmlAttributes); html = HtmlAttributeHelper.AddTextAreaStyle(html); var maxLength = expression.MaxLength(); if (maxLength != 0) { html = HtmlAttributeHelper.AddMaxLength(html, maxLength); } return(CustomControlHelper.GenerateWithValidationMessage(htmlHelper, htmlHelper.TextAreaFor(expression, html).ToString(), expression)); }
public static MvcHtmlString ExtEditorFullFor <TModel, TValue>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, IEnumerable <TValue> > > expression, bool readOnly = false, object htmlAttributes = null) { var html = HtmlAttributeHelper.AddDefaultClass(htmlAttributes); html = HtmlAttributeHelper.AddTextAreaStyle(html); var stringBuilder = new StringBuilder(); stringBuilder.AppendLine(htmlHelper.TextAreaFor(expression, html).ToString()); var controlId = HtmlAttributeHelper.GetControlIdFromExpression(expression); stringBuilder.AppendLine("<script>"); stringBuilder.AppendLine(readOnly ? $"CKEDITOR.replace('{controlId}', {{ readOnly: true }})" : $"CKEDITOR.replace('{controlId}')"); stringBuilder.AppendLine("</script>"); return(CustomControlHelper.GenerateWithValidationMessage(htmlHelper, stringBuilder.ToString(), expression)); }
public static MvcHtmlString ExtMultiSelectFor <TModel, TValue>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, IEnumerable <TValue> > > expression, IEnumerable <SelectListItem> values, IEnumerable <TValue> selectedIds, string controlId, object htmlAttributes = null) { var isDisabled = false; var html = htmlAttributes == null ? new RouteValueDictionary() : new RouteValueDictionary(htmlAttributes); if (html["disabled"] != null && html["disabled"].ToString() == "disabled") { isDisabled = true; } var selectListItems = values.ToList(); var leftListBuilder = new TagBuilder("select"); leftListBuilder.AddCssClass("form-control"); leftListBuilder.MergeAttribute("name", "leftList" + CustomControlHelper.GetControlCount("leftList")); leftListBuilder.MergeAttribute("id", controlId + "_from"); leftListBuilder.MergeAttribute("size", "8"); leftListBuilder.MergeAttribute("multiple", "multiple"); if (isDisabled) { leftListBuilder.MergeAttribute("disabled", "disabled"); } foreach (var selectListItem in selectListItems) { var optionBuilder = new TagBuilder("option"); optionBuilder.MergeAttribute("value", selectListItem.Value); optionBuilder.SetInnerText(selectListItem.Text); leftListBuilder.InnerHtml += optionBuilder.ToString(); } var leftColumnBuilder = new TagBuilder("div"); leftColumnBuilder.AddCssClass("col-xs-5"); leftColumnBuilder.InnerHtml = leftListBuilder.ToString(); var rightAllIconBuilder = new TagBuilder("i"); rightAllIconBuilder.AddCssClass("glyphicon"); rightAllIconBuilder.AddCssClass("glyphicon-forward"); var rightAllButtonBuilder = new TagBuilder("button"); rightAllButtonBuilder.MergeAttribute("type", "button"); rightAllButtonBuilder.MergeAttribute("id", controlId + "_rightAll"); rightAllButtonBuilder.AddCssClass("btn"); rightAllButtonBuilder.AddCssClass("btn-block"); rightAllButtonBuilder.InnerHtml = rightAllIconBuilder.ToString(); var rightSelectedIconBuilder = new TagBuilder("i"); rightSelectedIconBuilder.AddCssClass("glyphicon"); rightSelectedIconBuilder.AddCssClass("glyphicon-chevron-right"); var rightSelectedButtonBuilder = new TagBuilder("button"); rightSelectedButtonBuilder.MergeAttribute("type", "button"); rightSelectedButtonBuilder.MergeAttribute("id", controlId + "_rightSelected"); rightSelectedButtonBuilder.AddCssClass("btn"); rightSelectedButtonBuilder.AddCssClass("btn-block"); rightSelectedButtonBuilder.InnerHtml = rightSelectedIconBuilder.ToString(); var leftSelectedIconBuilder = new TagBuilder("i"); leftSelectedIconBuilder.AddCssClass("glyphicon"); leftSelectedIconBuilder.AddCssClass("glyphicon-chevron-left"); var leftSelectedButtonBuilder = new TagBuilder("button"); leftSelectedButtonBuilder.MergeAttribute("type", "button"); leftSelectedButtonBuilder.MergeAttribute("id", controlId + "_leftSelected"); leftSelectedButtonBuilder.AddCssClass("btn"); leftSelectedButtonBuilder.AddCssClass("btn-block"); leftSelectedButtonBuilder.InnerHtml = leftSelectedIconBuilder.ToString(); var leftAllIconBuilder = new TagBuilder("i"); leftAllIconBuilder.AddCssClass("glyphicon"); leftAllIconBuilder.AddCssClass("glyphicon-backward"); var leftAllButtonBuilder = new TagBuilder("button"); leftAllButtonBuilder.MergeAttribute("type", "button"); leftAllButtonBuilder.MergeAttribute("id", controlId + "_leftAll"); leftAllButtonBuilder.AddCssClass("btn"); leftAllButtonBuilder.AddCssClass("btn-block"); leftAllButtonBuilder.InnerHtml = leftAllIconBuilder.ToString(); if (isDisabled) { rightAllButtonBuilder.AddCssClass("disabled"); rightSelectedButtonBuilder.AddCssClass("disabled"); leftSelectedButtonBuilder.AddCssClass("disabled"); leftAllButtonBuilder.AddCssClass("disabled"); rightAllButtonBuilder.MergeAttribute("disabled", "disabled"); rightSelectedButtonBuilder.MergeAttribute("disabled", "disabled"); leftSelectedButtonBuilder.MergeAttribute("disabled", "disabled"); leftAllButtonBuilder.MergeAttribute("disabled", "disabled"); } var middleColumnBuilder = new TagBuilder("div"); middleColumnBuilder.AddCssClass("col-xs-2"); middleColumnBuilder.InnerHtml += rightAllButtonBuilder.ToString(); middleColumnBuilder.InnerHtml += rightSelectedButtonBuilder.ToString(); middleColumnBuilder.InnerHtml += leftSelectedButtonBuilder.ToString(); middleColumnBuilder.InnerHtml += leftAllButtonBuilder.ToString(); var variableName = ExpressionHelper.GetExpressionText(expression); var itemName = htmlHelper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(variableName); var rightListBuilder = new TagBuilder("select"); rightListBuilder.AddCssClass("form-control"); rightListBuilder.MergeAttribute("name", itemName); rightListBuilder.MergeAttribute("id", controlId + "_to"); rightListBuilder.MergeAttribute("size", "8"); rightListBuilder.MergeAttribute("multiple", "multiple"); if (isDisabled) { rightListBuilder.MergeAttribute("disabled", "disabled"); } foreach (var selectedId in selectedIds) { var selectedItem = selectListItems.FirstOrDefault(x => x.Value == selectedId.ToString()); if (selectedItem == null) { continue; } var optionBuilder = new TagBuilder("option"); optionBuilder.MergeAttribute("value", selectedItem.Value); optionBuilder.SetInnerText(selectedItem.Text); rightListBuilder.InnerHtml += optionBuilder.ToString(); } var rightColumnBuilder = new TagBuilder("div"); rightColumnBuilder.AddCssClass("col-xs-5"); rightColumnBuilder.InnerHtml = rightListBuilder.ToString(); var rowBuilder = new TagBuilder("div"); rowBuilder.AddCssClass("row"); rowBuilder.InnerHtml = leftColumnBuilder.ToString(); rowBuilder.InnerHtml += middleColumnBuilder.ToString(); rowBuilder.InnerHtml += rightColumnBuilder.ToString(); var scriptBuilder = new TagBuilder("script"); scriptBuilder.MergeAttribute("type", "text/javascript"); scriptBuilder.InnerHtml = "jQuery(document).ready(function($) { $('#" + controlId + "').multiselect(); });"; var stringBuilder = new StringBuilder(); stringBuilder.AppendLine(rowBuilder.ToString()); stringBuilder.AppendLine(scriptBuilder.ToString()); return(CustomControlHelper.GenerateWithValidationMessage(htmlHelper, stringBuilder.ToString(), expression)); }
public static MvcHtmlString ExtDateTimeFor <TModel, TValue>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TValue> > expression, DateTimeOption option = null, object htmlAttributes = null) { var html = HtmlAttributeHelper.AddDefaultClass(htmlAttributes); // html.Add("onkeydown", "return false"); var maxLength = expression.MaxLength(); if (maxLength != 0) { html = HtmlAttributeHelper.AddMaxLength(html, maxLength); } else { html = HtmlAttributeHelper.AddMaxLength(html, 255); } var controlId = HtmlAttributeHelper.GetControlIdFromExpression(expression); var stringBuilder = new StringBuilder(); stringBuilder.AppendLine("<div class='input-group date ' id='dv" + controlId + "'>"); stringBuilder.AppendLine(htmlHelper.TextBoxFor(expression, html).ToString()); var options = new List <string>(); if (option != null) { if (!string.IsNullOrEmpty(option.ViewMode)) { options.Add(string.Format("viewMode: '{0}'", option.ViewMode)); } if (!string.IsNullOrEmpty(option.Format)) { options.Add(string.Format("format: '{0}'", option.Format)); if (option.Format == "LT" || option.Format == "HH:mm" || option.Format == "HH:mm:ss") { stringBuilder.AppendLine("<span class='input-group-addon'><span class='glyphicon glyphicon-time'></span></span>"); } else { stringBuilder.AppendLine("<span class='input-group-addon'><span class='glyphicon glyphicon-calendar'></span></span>"); } } if (option.DaysOfWeekDisabled != null) { options.Add(string.Format("daysOfWeekDisabled: {0}", option.DaysOfWeekDisabled)); } if (!string.IsNullOrEmpty(option.MinDate)) { options.Add(string.Format("minDate: {0}", option.MinDate)); } else { options.Add(string.Format("minDate: {0}", " moment('01/01/1990')")); } if (!string.IsNullOrEmpty(option.MaxDate)) { options.Add(string.Format("maxDate: {0}", option.MaxDate)); } if (option.EnabledHours.HasValue) { options.Add(string.Format("enabledHours : '{0}'", option.EnabledHours.Value)); } if (option.ViewDate.HasValue) { options.Add(string.Format("viewDate : {0}", option.ViewDate.Value)); } if (option.Inline.HasValue) { options.Add(string.Format("inline : {0}", option.Inline.Value)); } // options.Add(string.Format("defaultDate:{0}", DateTime.Now.ToString("d"))); } stringBuilder.AppendLine("</div><script>$(function(){"); var optionsStr = string.Join(", ", options); stringBuilder.AppendLine(string.Format("$('#dv{0}').datetimepicker( {{{1}}});", controlId, optionsStr)); //stringBuilder.AppendLine(string.Format("$('#{0}').datetimepicker('setDate',{1});", controlId,string.Format( "$('#{0}').val()",controlId))); stringBuilder.AppendLine("});</script>"); if (option != null && option.IsValidationMessageSupported) { return(new MvcHtmlString(stringBuilder.ToString())); } return(CustomControlHelper.GenerateWithValidationMessage(htmlHelper, stringBuilder.ToString(), expression)); }
public static MvcHtmlString ExtMultiSuggestionFor <TModel, TValue>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TValue> > expression, MultiSuggestionOption option, object htmlAttributes = null) { var html = htmlAttributes == null ? new RouteValueDictionary() : new RouteValueDictionary(htmlAttributes); var stringBuilder = new StringBuilder(); stringBuilder.AppendLine(htmlHelper.TextBoxFor(expression, html).ToString()); var controlId = HtmlAttributeHelper.GetControlIdFromExpression(expression); stringBuilder.AppendLine("<script>$(function(){"); stringBuilder.AppendLine($"$('#{controlId}').tokenInput('{option.SearchUrl}',{{"); stringBuilder.AppendLine("theme: 'facebook',"); if (option.LimitedItem != 0) { stringBuilder.AppendLine($"tokenLimit: {option.LimitedItem},"); } stringBuilder.AppendLine("method: 'POST',"); stringBuilder.AppendLine("queryParam: 'query',"); stringBuilder.AppendLine("tokenValue: 'Id',"); stringBuilder.AppendLine($"required: {expression.IsRequired().ToString().ToLower()},"); stringBuilder.AppendLine("propertyToSearch: 'Name',"); stringBuilder.AppendLine("preventDuplicates: true,"); stringBuilder.AppendLine("minChars: " + option.MinChars + ","); if (option.DefaultValues != null) { stringBuilder.AppendLine( $"prePopulate: {JsonConvert.SerializeObject(option.DefaultValues).Replace("/", "\\/")},"); } if (!string.IsNullOrEmpty(option.OnAdd)) { stringBuilder.AppendLine($"onAdd: {option.OnAdd},"); } if (!string.IsNullOrEmpty(option.OnDelete)) { stringBuilder.AppendLine($"onDelete: {option.OnDelete},"); } if (!string.IsNullOrEmpty(option.AdditionalParam)) { stringBuilder.AppendLine($"additionalParam: {option.AdditionalParam},"); } if (option.LocalData != null) { stringBuilder.AppendLine( $"local_data: {JsonConvert.SerializeObject(option.LocalData)},"); } if (option.CreateNew.HasValue) { stringBuilder.AppendLine($"createNew: {option.CreateNew.Value.ToString().ToLower()},"); } if (!string.IsNullOrEmpty(option.OnResult)) { stringBuilder.AppendLine($"onResult: {option.OnResult},"); } stringBuilder.AppendLine("});});</script>"); return(CustomControlHelper.GenerateWithValidationMessage(htmlHelper, stringBuilder.ToString(), expression)); }
public static MvcHtmlString ExtCheckBoxListFor <TModel, TValue>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, IEnumerable <TValue> > > expression, IEnumerable <SelectListItem> values, IEnumerable <TValue> selectedIds, int columnNumber = 1, object htmlAttributes = null) { if (columnNumber <= 1) { return(htmlHelper.ExtCheckBoxListSingleColumnFor(expression, values, selectedIds, htmlAttributes)); } var isDisabled = false; var html = htmlAttributes == null ? new RouteValueDictionary() : new RouteValueDictionary(htmlAttributes); if (html["disabled"] != null && html["disabled"].ToString() == "disabled") { isDisabled = true; } var variableName = ExpressionHelper.GetExpressionText(expression); var itemName = htmlHelper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(variableName); var selectedValues = selectedIds.Select(x => x.ToString()).ToList(); var selectListItems = values.ToList(); var rowNumber = selectListItems.Count / columnNumber + 1; var tableBuilder = new TagBuilder("table"); for (var rowIndex = 0; rowIndex < rowNumber; rowIndex++) { var trBuilder = new TagBuilder("tr"); for (var columnIndex = 0; columnIndex < columnNumber; columnIndex++) { var itemIndex = rowIndex * columnNumber + columnIndex; if (itemIndex >= selectListItems.Count) { break; } var itemId = itemName + CustomControlHelper.GetControlCount(itemName); var inputBuilder = new TagBuilder("input"); inputBuilder.MergeAttribute("id", itemId); inputBuilder.MergeAttribute("name", itemName); inputBuilder.MergeAttribute("type", "checkbox"); inputBuilder.MergeAttribute("value", selectListItems[itemIndex].Value); if (selectedValues.Contains(selectListItems[itemIndex].Value)) { inputBuilder.MergeAttribute("checked", "checked"); } if (isDisabled) { inputBuilder.MergeAttribute("disabled", "disabled"); } var labelInner = inputBuilder + selectListItems[itemIndex].Text; var labelBuilder = new TagBuilder("label"); labelBuilder.MergeAttribute("for", itemId); labelBuilder.InnerHtml = labelInner; var divBuilder = new TagBuilder("div"); //divBuilder.AddCssClass("checkbox"); if (isDisabled) { divBuilder.AddCssClass("disabled"); } divBuilder.InnerHtml = labelBuilder.ToString(); var tdBuilder = new TagBuilder("td") { InnerHtml = divBuilder.ToString() }; trBuilder.InnerHtml += tdBuilder.ToString(); } tableBuilder.InnerHtml += trBuilder.ToString(); } return(CustomControlHelper.GenerateWithValidationMessage(htmlHelper, tableBuilder.ToString(), expression)); }
public static MvcHtmlString ExtRadioButtonFor <TModel, TValue>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TValue> > expression, IEnumerable <SelectListItem> values, object htmlAttributes = null, bool isInline = false, int size = 1) { var isDisabled = false; var html = htmlAttributes == null ? new RouteValueDictionary() : new RouteValueDictionary(htmlAttributes); if (html["disabled"] != null && html["disabled"].ToString() == "disabled") { isDisabled = true; } var stringBuilder = new StringBuilder(); if (isInline) { foreach (var selectListItem in values) { var input = htmlHelper.RadioButtonFor(expression, selectListItem.Value, html); var label = selectListItem.Text; var divBuilder = new TagBuilder("div"); if (isDisabled) { divBuilder.AddCssClass("disabled"); } divBuilder.AddCssClass("col-xs-" + size); divBuilder.InnerHtml = input + label; stringBuilder.Append(divBuilder); } } else { foreach (var selectListItem in values) { var input = htmlHelper.RadioButtonFor(expression, selectListItem.Value, html); var label = selectListItem.Text; var labelBuilder = new TagBuilder("label") { InnerHtml = input + label }; var divBuilder = new TagBuilder("div"); divBuilder.AddCssClass("radio"); if (isDisabled) { divBuilder.AddCssClass("disabled"); } divBuilder.InnerHtml = labelBuilder.ToString(); stringBuilder.Append(divBuilder); } } return(CustomControlHelper.GenerateWithValidationMessage(htmlHelper, stringBuilder.ToString(), expression)); }