private void RenderButtons(NavHtmlTextWritter textWriter)
        {
            // Buttons Control-Group
            textWriter.AddAttribute(HtmlTextWriterAttribute.Class, "form-group");
            textWriter.RenderBeginTag((HtmlTextWriterTag)HtmlTextWriterTag.Div);

            // Controls Div
            textWriter.AddAttribute(HtmlTextWriterAttribute.Class, "controls");
            textWriter.RenderBeginTag((HtmlTextWriterTag)HtmlTextWriterTag.Div);

            // Submit Button
            textWriter.AddAttribute(HtmlTextWriterAttribute.Type, "submit");
            textWriter.AddAttribute(HtmlTextWriterAttribute.Class, "btn btn-default btn-primary");
            textWriter.AddAttribute(HtmlTextWriterAttribute.Value, "Submit");
            textWriter.RenderBeginTag((HtmlTextWriterTag)HtmlTextWriterTag.Input);
            textWriter.RenderEndTag(); //</input>

            textWriter.Write("&nbsp;&nbsp;");

            // Cancel Button
            textWriter.AddAttribute(HtmlTextWriterAttribute.Type, "button");
            textWriter.AddAttribute(HtmlTextWriterAttribute.Class, "btn btn-default");
            textWriter.AddAttribute(HtmlTextWriterAttribute.Value, "Cancel");
            textWriter.AddAttribute(HtmlTextWriterAttribute.Onclick,
                                    "window.location = '" + helper.ViewContext.HttpContext.Request.UrlReferrer + "'");
            textWriter.RenderBeginTag((HtmlTextWriterTag)HtmlTextWriterTag.Input);
            textWriter.RenderEndTag(); //</input>

            textWriter.RenderEndTag(); // div (Controls Div)

            textWriter.RenderEndTag(); // div (Buttons Control-Group)
        }
Esempio n. 2
0
        public MenuContainer(NavHtmlTextWritter htmlTextWriter)
        {
            this.htmlTextWriter = htmlTextWriter;

            //<nav class="navbar navbar-default" role="navigation">
            this.htmlTextWriter.AddAttribute(HtmlTextWriterAttribute.Class, "nav navbar-nav");
            this.htmlTextWriter.RenderBeginTag(HtmlTextWriterTag.Ul);
        }
Esempio n. 3
0
        private static void PageItem(NavHtmlTextWritter textWriter, MvcHtmlString linkBlock, string cssClass = "")
        {
            if (cssClass != string.Empty)
            {
                textWriter.AddAttribute(HtmlTextWriterAttribute.Class, cssClass);
            }

            textWriter.RenderBeginTag(HtmlTextWriterTag.Li);
            textWriter.Write(linkBlock);
            textWriter.RenderEndTag();
        }
Esempio n. 4
0
        public MvcHtmlString Build(MenuItem menu)
        {
            var sb           = new StringBuilder();
            var stringWriter = new StringWriter(sb);

            using (var textWriter = new NavHtmlTextWritter(stringWriter))
            {
                using (new MenuContainer(textWriter)) foreach (var menuItem in menu.Children)
                    {
                        Render(menuItem, textWriter);
                    }

                return(new MvcHtmlString(sb.ToString()));
            }
        }
        public virtual MvcHtmlString Build(TModel model, BootstrapFormType formType, bool renderButtons = true)
        {
            var  sb               = new StringBuilder(2000);
            var  formElements     = ExtractElementsToRender(model);
            var  groupsofElements = formElements.OrderBy(x => x.ControlSpecs.GroupName).GroupBy(x => x.ControlSpecs.GroupName);
            bool useLegend        = (formElements.Select(x => x.ControlSpecs.GroupName).Distinct().Count() > 1);

            var stringWriter = new StringWriter(sb);

            using (var textWriter = new NavHtmlTextWritter(stringWriter))
            {
                RenderHiddenFields(model, formElements, textWriter);

                foreach (var groupedElements in groupsofElements)
                {
                    var groupName = (!String.IsNullOrEmpty(groupedElements.Key)) ? groupedElements.Key : "General";

                    using (new ElementGroup(textWriter, groupName, useLegend))
                    {
                        var elementsToRender = groupedElements.Where(x => x.ControlSpecs.Control != ControlType.Hidden)
                                               .OrderBy(x => x.ControlSpecs.Order);

                        // loop over the attributes (ordered)..
                        foreach (var formElement in elementsToRender)
                        {
                            using (new ControlGroup(textWriter))
                            {
                                ControlGroup.RenderLabel(formType, formElement, textWriter);

                                using (new ControlContainer(textWriter))
                                {
                                    // Control
                                    RenderElement(textWriter, model, formElement);
                                }
                            }
                        }
                    }
                }

                if (renderButtons)
                {
                    RenderButtons(textWriter);
                }

                return(new MvcHtmlString(sb.ToString()));
            }
        }
        private void RenderHiddenFields(TModel model, IEnumerable <FormElement> formElements, NavHtmlTextWritter textWriter)
        {
            foreach (var formElement in formElements)
            {
                var hiddenAttribute = formElement.ControlSpecs;

                if (hiddenAttribute != null && hiddenAttribute.Control == ControlType.Hidden)
                {
                    RenderElement(textWriter, model, formElement);
                }
            }
        }
        protected void RenderElement(NavHtmlTextWritter writer, TModel model, FormElement formElement)
        {
            PropertyInfo property = formElement.PropertyInfo;

            bool isRequired = false;

            var requiredAttribute =
                property.GetCustomAttributes(typeof(RequiredAttribute), false).FirstOrDefault() as RequiredAttribute;

            if (requiredAttribute != null)
            {
                isRequired = true;
            }

            var value = property.GetValue(model, null);

            writer.AddAttribute(HtmlTextWriterAttribute.Class, "form-control");

            switch (formElement.ControlSpecs.Control)
            {
            case ControlType.TextBox:
                formControlGenerator.RenderTextBox(writer, formElement, value, isRequired);
                break;

            case ControlType.Hidden:
                formControlGenerator.RenderHidden(writer, formElement, value, isRequired);
                break;

            case ControlType.TextArea:
                formControlGenerator.RenderTextArea(writer, formElement, value, isRequired);
                break;

            case ControlType.Password:
                formControlGenerator.RenderPassword(writer, formElement, value, isRequired);
                break;

            case ControlType.DateTime:
                formControlGenerator.RenderDateTime(writer, formElement, value, isRequired);
                break;

            case ControlType.FloatingPointNumber:
                formControlGenerator.RenderFloatingPointNumber(writer, formElement, value, isRequired);
                break;

            case ControlType.WholeNumber:
                formControlGenerator.RenderWholeNumber(writer, formElement, value, isRequired);
                break;

            case ControlType.Time:
                formControlGenerator.RenderDateTime(writer, formElement, value, isRequired);
                break;

            case ControlType.CheckBox:
                formControlGenerator.RenderBoolean(writer, formElement, value);
                break;

            case ControlType.Enum:
                formControlGenerator.RenderEnum(writer, formElement, value, isRequired);
                break;

            case ControlType.DropDownList:
                var collectionObject = properties[formElement.CollectionInfo.ListSourceMember]
                                       .GetValue(model, null) as IEnumerable <SelectListItem>;
                formControlGenerator.RenderDropDownList(writer, formElement, value, isRequired, collectionObject);
                break;

            case ControlType.ListBox:
                break;

            case ControlType.StaticText:
                formControlGenerator.RenderStaticText(writer, formElement, value, isRequired);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Esempio n. 8
0
        public static MvcHtmlString PageLinks(
            this HtmlHelper html,
            object queryObject,
            Func <object, string> urlActionDelegate,
            int linksToShow = 0)
        {
            var pagingInfoViewModel = queryObject as IPagingParameters;
            var result = new StringBuilder();

            if (pagingInfoViewModel != null)
            {
                var currentPage = pagingInfoViewModel.PageNumber + 1;
                var totalPages  = pagingInfoViewModel.TotalPages;
                linksToShow = (linksToShow == 0) ? totalPages : linksToShow;

                if (pagingInfoViewModel.TotalPages <= 1)
                {
                    return(MvcHtmlString.Create(string.Empty));
                }


                var    stringWriter = new StringWriter(result);
                string linkBlock    = string.Empty;

                using (var textWriter = new NavHtmlTextWritter(stringWriter))
                {
                    {
                        textWriter.AddAttribute(HtmlTextWriterAttribute.Class, Configurations.WebConfigurations.PagingConfigurations.PaginationCssClass);
                        textWriter.RenderBeginTag(HtmlTextWriterTag.Ul);
                        {
                            if (currentPage > 1)
                            {
                                pagingInfoViewModel.PageNumber = 1;
                                PageItem(textWriter, BasePagingExtensions.CreatePageLink(urlActionDelegate, queryObject, Configurations.WebConfigurations.PagingConfigurations.FirstPageText));


                                pagingInfoViewModel.PageNumber = currentPage - 1;
                                PageItem(textWriter, BasePagingExtensions.CreatePageLink(urlActionDelegate, queryObject, Configurations.WebConfigurations.PagingConfigurations.PreviousPageText));
                            }

                            // create page links
                            int start = 1;
                            int end   = totalPages;
                            start = PagerPounds(linksToShow, totalPages, currentPage, start, ref end);

                            for (int i = start; i <= end; i++)
                            {
                                pagingInfoViewModel.PageNumber = i;
                                if (i == currentPage)
                                {
                                    PageItem(textWriter, BasePagingExtensions.CreatePageLink(urlActionDelegate, queryObject, i.ToString()), Configurations.WebConfigurations.PagingConfigurations.ActivePageClass);
                                }
                                else
                                {
                                    PageItem(textWriter, BasePagingExtensions.CreatePageLink(urlActionDelegate, queryObject, i.ToString()));
                                }
                            }


                            // create 'Next >>' link
                            if (currentPage < totalPages)
                            {
                                pagingInfoViewModel.PageNumber = currentPage + 1;
                                PageItem(textWriter, BasePagingExtensions.CreatePageLink(urlActionDelegate, queryObject, Configurations.WebConfigurations.PagingConfigurations.NextPageText));

                                pagingInfoViewModel.PageNumber = totalPages;
                                PageItem(textWriter, BasePagingExtensions.CreatePageLink(urlActionDelegate, queryObject, Configurations.WebConfigurations.PagingConfigurations.LastPageText));
                            }


                            textWriter.RenderEndTag();
                        }
                    }
                }
            }
            return(MvcHtmlString.Create(result.ToString()));
        }