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;
        }
Example #4
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);
        }
Example #5
0
        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;
        }
Example #7
0
        /// <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;

        }
Example #9
0
        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};
        }