Example #1
0
        public static MvcHtmlString ProgressBar(this HtmlHelper helper, double value, ProgressBarOptions options)
        {
            TagBuilder progress = new TagBuilder("div");
            TagBuilder bar      = new TagBuilder("div");

            if (options == null)
            {
                options = new ProgressBarOptions();
            }

            bar.AddCssClass("progress-bar");
            if (options.Color != BootstrapColor.None)
            {
                bar.AddCssClass("bg-" + BootstrapHelper.GetColorName(options.Color));
            }

            if (options.Striped || options.Animated)
            {
                bar.AddCssClass("progress-bar-striped");
            }
            if (options.Animated)
            {
                bar.AddCssClass("progress-bar-animated");
            }

            bar.Attributes.Add("role", "progressbar");
            bar.Attributes.Add("aria-valuemin", "0");
            bar.Attributes.Add("aria-valuemax", "100");
            bar.Attributes.Add("aria-valuenow", value.ToString("p1"));

            bar.AddInlineStyle("width", value.ToString("p1"));

            if (options.ShowLabel)
            {
                string label = string.Format(options.LabelFormatString ?? DefaultLabelFormatString, value);

                bar.SetInnerText(label);
                bar.AddInlineStyle("min-width", (label.Length + 1) + "em");
            }

            progress.AddCssClass("progress");

            progress.InnerHtml = bar.ToString();

            return(new MvcHtmlString(progress.ToString()));
        }