public IEnumerable<System.Web.Mvc.ModelClientValidationRule> GetClientValidationRules(EAV.CustomField field, EAV.FieldValidationRule rule) { if (!String.IsNullOrWhiteSpace(rule.ValidatorData)) { var data = JsonConvert.DeserializeObject<RangeValidatorData>(rule.ValidatorData); yield return new ModelClientValidationRangeRule(rule.ErrorMessage, data.Start, data.End); } }
protected override void BuildControl(System.Web.Mvc.TagBuilder builder, EAV.CustomField field, string value, object htmlAttributes, System.Web.Mvc.ViewContext viewContext) { builder.AddCssClass("form-list"); if (!String.IsNullOrWhiteSpace(field.SelectionItems)) { var itemsHtml = new StringBuilder(); var items = JsonConvert.DeserializeObject<List<SelectionListItem>>(field.SelectionItems); for (var i = 0; i < items.Count; i++) { var item = items[i]; 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.Key; label.AddCssClass("inline"); label.MergeAttribute("for", radioId); itemsHtml.AppendLine(radio.ToString(TagRenderMode.SelfClosing)); itemsHtml.AppendLine(label.ToString()); itemsHtml.AppendLine("</li>"); } builder.InnerHtml = itemsHtml.ToString(); } base.BuildControl(builder, field, value, htmlAttributes, viewContext); }