protected override void BuildControl(System.Web.Mvc.TagBuilder builder, Products.CustomFieldDefinition field, string value, object htmlAttributes, System.Web.Mvc.ViewContext viewContext) { builder.AddCssClass("form-list"); var itemsHtml = new StringBuilder(); var i = 0; foreach (var item in field.SelectionItems) { itemsHtml.AppendLine("<li>"); var radioId = field.Name + "_" + i; var radio = new TagBuilder("input"); radio.MergeAttribute("id", radioId); radio.MergeAttribute("type", "radio"); radio.MergeAttribute("name", field.Name); radio.MergeAttribute("value", item.Value); var label = new TagBuilder("label"); label.InnerHtml = item.Text; label.AddCssClass("inline"); label.MergeAttribute("for", radioId); itemsHtml.AppendLine(radio.ToString(TagRenderMode.SelfClosing)); itemsHtml.AppendLine(label.ToString()); itemsHtml.AppendLine("</li>"); i++; } builder.InnerHtml = itemsHtml.ToString(); base.BuildControl(builder, field, value, htmlAttributes, viewContext); }
protected override void BuildControl(System.Web.Mvc.TagBuilder builder, Products.CustomFieldDefinition field, string value, object htmlAttributes, System.Web.Mvc.ViewContext viewContext) { builder.MergeAttribute("data-toggle", "datepicker"); base.BuildControl(builder, field, value, htmlAttributes, viewContext); }
public override string GetFieldDisplayText(Products.CustomFieldDefinition fieldDefinition, string fieldValue) { var item = fieldDefinition.SelectionItems.FirstOrDefault(i => i.Value == fieldValue); return(item == null ? fieldValue : item.Text); }
public IEnumerable <System.Web.Mvc.ModelClientValidationRule> GetClientValidationRules(Products.CustomFieldDefinition field, Products.FieldValidationRule rule) { if (!String.IsNullOrWhiteSpace(rule.ValidatorConfig)) { var data = JsonConvert.DeserializeObject <StringLengthValidatorConfig>(rule.ValidatorConfig); yield return(new ModelClientValidationStringLengthRule(rule.ErrorMessage, data.MinLength, data.MaxLength)); } }