Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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"></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;

        }
 /// <summary>
 /// Initializes a new instance of the <see cref="SelectContext"/> class.
 /// </summary>
 /// <param name="context">Base context.</param>
 /// <param name="formatter"><see cref="Formatter"/></param>
 /// <param name="listItems"><seealso cref="ListItems"/></param>
 public SelectContext(GeneratorContext context, ISelectItemFormatter formatter, IEnumerable listItems) : base(context)
 {
     Formatter = formatter;
     ListItems = listItems;
 }
Пример #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SelectContext"/> class.
 /// </summary>
 /// <param name="context">Base context.</param>
 /// <param name="formatter"><see cref="Formatter"/></param>
 /// <param name="listItems"><seealso cref="ListItems"/></param>
 public SelectContext(GeneratorContext context, ISelectItemFormatter formatter, IEnumerable listItems)
     : base(context)
 {
     Formatter = formatter;
     ListItems = listItems;
 }