public virtual IEnumerable<NestedTagBuilder> GenerateForEnum(ITagBuilderContext context) { Setup(context); var tags = new List<NestedTagBuilder>(); foreach (var enumName in Enum.GetNames(Context.Metadata.ModelType)) { var tagBuilder = CreatePrimaryTag("input"); tagBuilder.MergeAttribute("type", "checkbox", true); if (!string.IsNullOrEmpty(Context.Metadata.Description)) tagBuilder.MergeAttribute("title", Context.Metadata.Description); if (GetValue() == enumName) tagBuilder.MergeAttribute("checked", "checked"); var label = new NestedTagBuilder("label"); var title = new NestedTagBuilder("span"); title.SetInnerText(LocalizedStringProvider.GetEnumString(Context.Metadata.ModelType, enumName)); label.AddChild(tagBuilder); label.AddChild(title); tags.Add(label); } return tags; }
public virtual IEnumerable<NestedTagBuilder> GenerateForEnum(ITagBuilderContext context) { Setup(context); var selectTag = CreatePrimaryTag("select"); if (!string.IsNullOrEmpty(Context.Metadata.Description)) selectTag.MergeAttribute("title", Context.Metadata.Description); var names = Enum.GetNames(getNonNullableModelType()); if(context.Metadata.IsNullableValueType) names = new string[] { string.Empty }.Concat(names).ToArray(); foreach (var enumName in names) { var tagBuilder = new NestedTagBuilder("option"); tagBuilder.MergeAttribute("value", enumName, true); if (GetValue() == enumName) tagBuilder.MergeAttribute("selected", "selected"); if (enumName != string.Empty) { var title = LocalizedStringProvider.GetEnumString(getNonNullableModelType(), enumName) ?? DefaultUICulture.FormatUnknown(enumName); tagBuilder.SetInnerText(title); } selectTag.AddChild(tagBuilder); } return new[] {selectTag}; }
/// <summary> /// Generate options /// </summary> /// <param name="items">Items used to generate options</param> /// <param name="selectedValue">Selected value</param> /// <param name="formatter">Formatter used to find label/value. May be null if the list contains <c>SelectListItem</c></param> /// <returns>Generated <c>option</c> tags</returns> protected IEnumerable<NestedTagBuilder> GenerateOptions(IEnumerable items, string selectedValue, ISelectItemFormatter formatter) { if (formatter == null) { if (!(items is IEnumerable<SelectListItem>)) throw new InvalidOperationException("No formatter was specified and the list do not contain SelectListItems"); return GenerateOptions((IEnumerable<SelectListItem>)items, selectedValue); } var listItems = new List<NestedTagBuilder>(); foreach (var item in items) { var tag = new NestedTagBuilder("option"); var listItem = formatter.Generate(item); tag.MergeAttribute("value", listItem.Value); if (listItem.Value == selectedValue || listItem.Selected) tag.MergeAttribute("selected", "selected"); tag.SetInnerText(listItem.Text); listItems.Add(tag); } return listItems; }
/// <summary> /// Generate options /// </summary> /// <param name="items">Items used to generate options</param> /// <param name="selectedValue">Selected value</param> /// <param name="formatter">Formatter used to find label/value. May be null if the list contains <c>SelectListItem</c></param> /// <returns>Generated <c>option</c> tags</returns> protected IEnumerable <NestedTagBuilder> GenerateOptions(IEnumerable items, string selectedValue, ISelectItemFormatter formatter) { if (formatter == null) { if (!(items is IEnumerable <SelectListItem>)) { throw new InvalidOperationException("No formatter was specified and the list do not contain SelectListItems"); } return(GenerateOptions((IEnumerable <SelectListItem>)items, selectedValue)); } var listItems = new List <NestedTagBuilder>(); foreach (var item in items) { var tag = new NestedTagBuilder("option"); var listItem = formatter.Generate(item); tag.MergeAttribute("value", listItem.Value); if (listItem.Value == selectedValue || listItem.Selected) { tag.MergeAttribute("selected", "selected"); } tag.SetInnerText(listItem.Text); listItems.Add(tag); } return(listItems); }
public virtual IEnumerable <NestedTagBuilder> GenerateForEnum(ITagBuilderContext context) { Setup(context); var tags = new List <NestedTagBuilder>(); foreach (var enumName in Enum.GetNames(Context.Metadata.ModelType)) { var tagBuilder = CreatePrimaryTag("input"); tagBuilder.MergeAttribute("type", "checkbox", true); if (!string.IsNullOrEmpty(Context.Metadata.Description)) { tagBuilder.MergeAttribute("title", Context.Metadata.Description); } if (GetValue() == enumName) { tagBuilder.MergeAttribute("checked", "checked"); } var label = new NestedTagBuilder("label"); var title = new NestedTagBuilder("span"); title.SetInnerText(LocalizedStringProvider.GetEnumString(Context.Metadata.ModelType, enumName)); label.AddChild(tagBuilder); label.AddChild(title); tags.Add(label); } return(tags); }
protected IEnumerable<NestedTagBuilder> GenerateOptions(IEnumerable items, string selectedValue) { var listItems = new List<NestedTagBuilder>(); foreach (SelectListItem listItem in items) { var tag = new NestedTagBuilder("option"); tag.MergeAttribute("value", listItem.Value); if (listItem.Value == selectedValue || listItem.Selected) tag.MergeAttribute("selected", "selected"); tag.SetInnerText(listItem.Text); listItems.Add(tag); } return listItems; }
/// <summary> /// Generate options from a a list of items /// </summary> /// <param name="items">Items to generate option tags for</param> /// <param name="selectedValue">Selected value</param> /// <returns>Generated option tags</returns> protected virtual IEnumerable <NestedTagBuilder> GenerateOptions(IEnumerable <SelectListItem> items, string selectedValue) { var listItems = new List <NestedTagBuilder>(); foreach (SelectListItem listItem in items) { var tag = new NestedTagBuilder("option"); tag.MergeAttribute("value", listItem.Value); if (listItem.Value == selectedValue || listItem.Selected) { tag.MergeAttribute("selected", "selected"); } tag.SetInnerText(listItem.Text); listItems.Add(tag); } return(listItems); }
/// <summary> /// Generate options /// </summary> /// <param name="items"></param> /// <param name="selectedValue"></param> /// <param name="formatter"></param> /// <returns></returns> protected IEnumerable<NestedTagBuilder> GenerateOptions(IEnumerable items, string selectedValue, ISelectItemFormatter formatter) { if (formatter == null) return GenerateOptions(items, selectedValue); var listItems = new List<NestedTagBuilder>(); foreach (var item in items) { var tag = new NestedTagBuilder("option"); var listItem = formatter.Generate(item); tag.MergeAttribute("value", listItem.Value); if (listItem.Value == selectedValue || listItem.Selected) tag.MergeAttribute("selected", "selected"); tag.SetInnerText(listItem.Text); listItems.Add(tag); } return listItems; }
public virtual IEnumerable<NestedTagBuilder> GenerateForEnum(ITagBuilderContext context) { Setup(context); var selectTag = CreatePrimaryTag("select"); if (!string.IsNullOrEmpty(Context.Metadata.Description)) selectTag.MergeAttribute("title", Context.Metadata.Description); foreach (var enumName in Enum.GetNames(Context.Metadata.ModelType)) { var tagBuilder = new NestedTagBuilder("option"); tagBuilder.MergeAttribute("value", enumName, true); if (GetValue() == enumName) tagBuilder.MergeAttribute("selected", "selected"); long corporateID = CurrentParemeter.GetCurrentCorporateId(); var title = LocalizedStringProvider.GetEnumString(corporateID,Context.Metadata.ModelType, enumName); tagBuilder.SetInnerText(title); selectTag.AddChild(tagBuilder); } return new[] {selectTag}; }