public string RenderMoveToGroups() { if (!this.Builder.isReadonly && this.Builder.GroupConfigurator.Groups.Any()) { var button = new TagBuilder("button"); var glyph = GetGlyphiconTag(Glyphicon.ShareAlt); if (this.Builder.GroupConfigurator.Groups.Count > 1) { var divContainer = new TagBuilder("div"); divContainer.AddCssClass("btn-white btn pull-right bs-bulkGroupMove"); var dropdownA = new TagBuilder("a"); dropdownA.MergeAttribute("data-toggle", "dropdown"); dropdownA.MergeAttribute("href", "#"); dropdownA.InnerHtml += BsResourceManager.Resource("GroupEditorMoveToGroups"); dropdownA.InnerHtml += glyph; var dropdownUl = new TagBuilder("ul"); dropdownUl.AddCssClass("dropdown-menu"); dropdownUl.MergeAttribute("style", "top:auto"); foreach (var group in this.Builder.GroupConfigurator.Groups) { var li = new TagBuilder("li"); var a = new TagBuilder("a"); a.MergeAttribute("href", "#"); a.MergeAttribute("class", "bs-moveToGroupBtn"); a.MergeAttribute("data-groupid", MvcHelpers.Serialize(group.Value.Uid)); a.InnerHtml += group.Value.Name; li.InnerHtml += a; dropdownUl.InnerHtml += li; } divContainer.InnerHtml += dropdownA; divContainer.InnerHtml += dropdownUl; return(divContainer.ToString()); } else { button.AddCssClass("btn-white btn pull-right bs-bulkGroupMove"); button.InnerHtml += BsResourceManager.Resource("GroupEditorMoveToGroups"); button.InnerHtml += glyph; button.AddCssClass("bs-moveToGroupBtn"); button.MergeAttribute("data-groupid", MvcHelpers.Serialize(this.Builder.GroupConfigurator.Groups.First().Value.Uid)); return(button.ToString()); } } return(string.Empty); }
public string RenderPages() { if (this.Builder.pager != null) { var pagesBuilder = new TagBuilder("div"); pagesBuilder.AddCssClass("col-md-9 col-lg-9 bs-pages"); if (this.Builder.settings.NoOffset || this.Builder.pager.GoTo != null) { pagesBuilder.AddCssClass("col-sm-8 col-xs-8"); } #region pagination pagesBuilder.InnerHtml += RenderPagination(); #endregion #region text if (this.Builder.settings.HasPagesText && !(this.Builder.settings.NoOffset || this.Builder.pager.GoTo != null)) { var textBuilder = new TagBuilder("div"); textBuilder.MergeAttribute("class", "results_number"); var firstIdx = (this.Builder.pager.CurrentPage - 1) * this.Builder.pager.PageSize + 1; var lastIdx = this.Builder.pager.CurrentPage == this.Builder.pager.TotalPages ? this.Builder.pager.TotalRecords : this.Builder.pager.CurrentPage * this.Builder.pager.PageSize; var lastBuilder = new TagBuilder("span"); lastBuilder.AddCssClass("bs-topResultsMargin"); lastBuilder.InnerHtml += lastIdx; var totalCountBuilder = new TagBuilder("span"); totalCountBuilder.InnerHtml += this.Builder.pager.TotalRecords; //TODO: var template = "{0}-{1} " + BsResourceManager.Resource("BF_Of") + " {2} " + BsResourceManager.Resource("BF_Items"); var result = string.Format(template, firstIdx, lastBuilder, totalCountBuilder.ToString()); textBuilder.InnerHtml += result; pagesBuilder.InnerHtml += textBuilder.ToString(); } #endregion return(pagesBuilder.ToString()); } else { return(string.Empty); } }
public string RenderGroupsFooter() { var cssClass = "col-lg-6 col-md-6 col-sm-6"; var counter = new TagBuilder("div"); counter.AddCssClass("row counter"); var total = new TagBuilder("div"); total.AddCssClass(cssClass); var span = new TagBuilder("span"); span.AddCssClass("bs-counter"); total.InnerHtml += "Total: " + span; counter.InnerHtml += total; if (!this.Builder.isReadonly) { var reset = new TagBuilder("div"); reset.AddCssClass(cssClass); var anchor = new TagBuilder("a"); anchor.MergeAttribute("href", "#"); anchor.AddCssClass("btn btn-white pull-right bs-resetGroupEditor"); anchor.InnerHtml += GetGlyphicon(Models.Glyphicon.Refresh); anchor.InnerHtml += " " + BsResourceManager.Resource("Reset"); if (!string.IsNullOrEmpty(this.Builder.saveUrl)) { var saveAnchor = new TagBuilder("a"); saveAnchor.MergeAttribute("href", this.Builder.saveUrl); saveAnchor.MergeAttribute("style", "margin-left:10px"); saveAnchor.AddCssClass("btn btn-white pull-right bs-saveGroupEditor"); saveAnchor.InnerHtml += GetGlyphicon(Models.Glyphicon.Save); saveAnchor.InnerHtml += " " + BsResourceManager.Resource("Save"); reset.InnerHtml += saveAnchor; } reset.InnerHtml += anchor; counter.InnerHtml += reset; } return(counter.ToString()); }
public BsGridHtmlBuilder <TModel, TRow> GridResetButton() { var resetButton = new TagBuilder("div"); resetButton.MergeAttribute("class", "btn btn-info bs-resetGrid reset-grid"); resetButton.MergeAttribute("style", "display:none"); resetButton.MergeAttribute("title", BsResourceManager.Resource("BF_Reset")); var resetButtonSpan = new TagBuilder("span"); resetButtonSpan.MergeAttribute("class", "glyphicon glyphicon-repeat"); resetButton.InnerHtml += resetButtonSpan.ToString(); this.resetButtonHtml = resetButton.ToString(); return(this); }
protected virtual string RenderIndex() { var gridBuilder = new TagBuilder("div"); var hideDetails = this.Builder.HideDetails(); gridBuilder.MergeAttribute("id", this.Builder.FullName.Split('.').Last().ToLower()); gridBuilder.MergeClassAttribute("grid_view", this.Builder.htmlAttributes); if (this.Builder.hasDetails) { gridBuilder.AddCssClass("is_expandable"); } if (this.Builder.hasBulkActions) { gridBuilder.AddCssClass("is_checkable"); } gridBuilder.MergeAttribute("data-settings", HtmlHelper.AnonymousObjectToHtmlAttributes(this.Builder.Model.BaseSettings).ToJsonString()); gridBuilder.MergeAttributes(this.Builder.htmlAttributes, true); gridBuilder.AddCssClass(this.Builder.Theme.GetDescription()); #region header builder if (this.Builder.renderTitle) { var headerBuilder = new TagBuilder("h2"); var badgeBuilder = new TagBuilder("span"); badgeBuilder.AddCssClass("badge"); badgeBuilder.InnerHtml += this.Builder.Model.Pager != null ? this.Builder.Model.Pager.TotalRecords : 0; headerBuilder.InnerHtml += badgeBuilder.ToString(); headerBuilder.InnerHtml += this.Builder.Metadata.DisplayName; var filterIconBuilder = new TagBuilder("span"); filterIconBuilder.AddCssClass("glyphicon glyphicon-filter icon_filter bs-filter"); filterIconBuilder.MergeAttribute("title", ""); headerBuilder.InnerHtml += filterIconBuilder.ToString(); #region BulkActions if (this.Builder.hasBulkActions) { var bulkActionsWrapper = new TagBuilder("div"); bulkActionsWrapper.MergeAttribute("class", "grid_bulk_controls bs-group_actions"); if (this.Builder.Model.Items == null || !this.Builder.Model.Items.Any()) { bulkActionsWrapper.MergeAttribute("style", "display:none"); } var orderedBulkActions = this.Builder.bulkActions.OrderBy(x => x.BulkActionOrder); foreach (var bulkAction in orderedBulkActions) { bulkActionsWrapper.InnerHtml += bulkAction.ToString(); } var bulkActionsSelectWrapper = new TagBuilder("div"); bulkActionsSelectWrapper.MergeAttribute("class", "btn-group check_all"); var bulkActionsSelectToggle = new TagBuilder("button"); bulkActionsSelectToggle.MergeAttribute("type", "button"); bulkActionsSelectToggle.MergeAttribute("class", "btn btn-white dropdown-toggle bs-selectorsContainer"); bulkActionsSelectToggle.MergeAttribute("data-toggle", "dropdown"); bulkActionsSelectToggle.MergeAttribute("title", BsResourceManager.Resource("Select")); var bulkActionsSelectToggleCaret = new TagBuilder("span"); bulkActionsSelectToggleCaret.MergeAttribute("class", "caret"); bulkActionsSelectToggle.InnerHtml += bulkActionsSelectToggleCaret.ToString(); bulkActionsSelectWrapper.InnerHtml += bulkActionsSelectToggle.ToString(); var bulkActionSelectList = new TagBuilder("ul"); bulkActionSelectList.MergeAttribute("class", "dropdown-menu pull-right"); bulkActionSelectList.MergeAttribute("role", "menu"); var orderedBulkSelectors = this.Builder.bulkSelectors.OrderBy(x => x.Order); foreach (var bulkSelector in orderedBulkSelectors) { bulkActionSelectList.InnerHtml += bulkSelector.ToString(); } bulkActionsSelectWrapper.InnerHtml += bulkActionSelectList.ToString(); var bulkActionsSelectCheckbox = new TagBuilder("input"); bulkActionsSelectCheckbox.MergeAttribute("type", "checkbox"); bulkActionsSelectWrapper.InnerHtml += bulkActionsSelectCheckbox.ToString(); bulkActionsWrapper.InnerHtml += bulkActionsSelectWrapper.ToString(); headerBuilder.InnerHtml += bulkActionsWrapper.ToString(); } if (!String.IsNullOrEmpty(this.Builder.resetButtonHtml)) { headerBuilder.InnerHtml += this.Builder.resetButtonHtml; } #endregion gridBuilder.InnerHtml += headerBuilder.ToString(); } #endregion var wrapper = new TagBuilder("div"); wrapper.AddCssClass("grid_rows"); #region columns builder if (this.Builder.showColumnsHeader) { var columnsBuilder = new TagBuilder("div"); columnsBuilder.AddCssClass("row grid_row title"); this.Builder.OrderColumns(); if (this.Builder.hasDetails) { var detailsBuilder = new TagBuilder("a"); detailsBuilder.MergeAttribute("class", "expand bs-toggleExpand"); if (this.Builder.Model.BaseSettings.DetailsAll || this.Builder.Model.BaseSettings.DetailsStartIndex == 0 && this.Builder.Model.BaseSettings.DetailsCount >= this.Builder.Model.Items.Count()) { detailsBuilder.AddCssClass("open"); } if (hideDetails) { detailsBuilder.MergeAttribute("style", "display:none"); } detailsBuilder.MergeAttribute("href", "#"); detailsBuilder.InnerHtml += " "; columnsBuilder.InnerHtml += detailsBuilder.ToString(); } var headerBuilder = new TagBuilder("header"); headerBuilder.AddCssClass("bs-header"); if (this.Builder.Model.Items == null || !this.Builder.Model.Items.Any()) { columnsBuilder.MergeAttribute("style", "display: none;"); } for (var i = 0; i < this.Builder.columns.Count; i++) { var column = this.Builder.columns[i]; if (this.Builder.Model.BaseSettings.OrderableColumns != null) { var orderModel = this.Builder.Model.BaseSettings.OrderableColumns.Find(x => x.Name == column.PrivateName); if (orderModel != null) { column.OrderType = orderModel.Type; } } headerBuilder.InnerHtml += column.ToString(); } columnsBuilder.InnerHtml += headerBuilder.ToString(); wrapper.InnerHtml += columnsBuilder.ToString(); } #endregion wrapper.InnerHtml += this.RenderRows(); gridBuilder.InnerHtml += wrapper.ToString(); #region pager builder if (this.Builder.renderPager) { var pagerWrapper = this.Builder.pagerBuilder.ToString(); gridBuilder.InnerHtml += pagerWrapper; } #endregion return(gridBuilder.ToString()); }
protected virtual string RenderRows() { var result = string.Empty; var rowsBuilder = new TagBuilder("div"); rowsBuilder.MergeAttribute("class", "grid_rows_wrapper"); if (this.Builder.Model.Items.Any()) { PropertyInfo hasDetailsProp = null; var rowType = typeof(TRow); var isSubClassOfBaseRowModel = rowType.InheritsOrImplements(typeof(BsGridRowModel <>)); if (isSubClassOfBaseRowModel) { hasDetailsProp = rowType.GetProperty("HasDetails", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public); } for (var rowIndex = 0; rowIndex < this.Builder.Model.Items.Count(); rowIndex++) { var row = this.Builder.Model.Items.ElementAt(rowIndex); var rowBuilder = new TagBuilder("div"); rowBuilder.MergeAttribute("class", "row grid_row"); rowBuilder.MergeAttribute("data-objid", row.GetUniqueID().ToString()); if (this.Builder.Model.BaseSettings.DetailsAll || this.Builder.Model.BaseSettings.HasDetails(rowIndex)) { rowBuilder.AddCssClass("open"); rowBuilder.MergeAttribute("data-hasdetails", true.ToString()); rowBuilder.MergeAttribute("data-expandedonload", true.ToString()); } var rowHasDetails = this.Builder.hasDetails && (this.Builder.rowDetails == null || this.Builder.rowDetails(row)); if (this.Builder.rowData != null) { rowBuilder.MergeAttributes(this.Builder.rowData(row)); } if (this.Builder.rowHighlighter != null) { var rowHighlighterBuilder = new TagBuilder("span"); rowHighlighterBuilder.MergeAttribute("class", "grid_row_color"); rowHighlighterBuilder.MergeAttribute("style", "background-color: " + this.Builder.rowHighlighter(row) + ";"); rowBuilder.InnerHtml += rowHighlighterBuilder.ToString(); } if (rowHasDetails) { var detailsBUilder = new TagBuilder("a"); detailsBUilder.MergeAttribute("class", "expand bs-expand"); detailsBUilder.MergeAttribute("href", "#"); detailsBUilder.InnerHtml += " "; rowBuilder.InnerHtml += detailsBUilder.ToString(); } var headerBuilder = new TagBuilder("header"); this.Builder.OrderColumns(); for (var i = 0; i < this.Builder.columns.Count; i++) { var column = this.Builder.columns.ElementAt(i); var cellBuilder = new TagBuilder("div"); if (column.htmlAttributes != null) { cellBuilder.MergeAttributes(column.htmlAttributes); } cellBuilder.AddCssClass(column.GetWidthClasses()); var text = string.Empty; if (column.CellText == null) { if (column.Property != null) { var value = column.Property.GetValue(row); text = value != null?value.ToString() : string.Empty; } } else { var cellText = column.CellText(row); text = cellText != null?cellText.ToString() : string.Empty; } var title = string.Empty; if (column.CellTitle != null) { title = (column.CellTitle(row) ?? string.Empty).ToString(); cellBuilder.MergeAttribute("title", title); } if (column.IsEditable) { var editBuilder = new TagBuilder("span"); editBuilder.MergeAttribute("class", "edit_col"); editBuilder.InnerHtml = text; cellBuilder.InnerHtml += editBuilder.ToString(); } else { cellBuilder.InnerHtml += text; } headerBuilder.InnerHtml += cellBuilder.ToString(); } rowBuilder.InnerHtml += headerBuilder.ToString(); if (this.Builder.hasBulkActions) { var checkBuilder = new TagBuilder("input"); checkBuilder.MergeAttribute("type", "checkbox"); checkBuilder.MergeAttribute("class", "row_check bs-row_check"); if (this.Builder.rowCheckbox != null && !this.Builder.rowCheckbox(row)) { checkBuilder.MergeAttribute("disabled", "disabled"); } rowBuilder.InnerHtml += checkBuilder.ToString(TagRenderMode.SelfClosing); } if (rowHasDetails && ((hasDetailsProp != null && (bool)hasDetailsProp.GetValue(row)) || this.Builder.Model.BaseSettings.HasDetails(rowIndex))) { rowBuilder.InnerHtml += this.Builder.rowDetailsTemplate(row); } rowsBuilder.InnerHtml += rowBuilder.ToString(); } result += rowsBuilder.ToString(); } else { rowsBuilder.AddCssClass("no_results"); var rowBuilder = new TagBuilder("div"); rowBuilder.MergeAttribute("class", "row grid_row"); rowBuilder.AddCssClass("bs-noResultsRow"); var divBuilder = new TagBuilder("div"); divBuilder.MergeAttribute("class", "col-sm-12 col-lg-12"); var infoBuilder = new TagBuilder("div"); infoBuilder.MergeAttribute("class", "alert alert-info"); var template = string.Empty; var stateClass = string.Empty; if (this.Builder.isAjaxRequest) { template = this.Builder.noResultsTemplate; stateClass = "noresults-state"; } else { template = this.Builder.noRecordsTemplate; stateClass = "blank-state"; } infoBuilder.AddCssClass(stateClass); infoBuilder.InnerHtml += !string.IsNullOrEmpty(template) ? this.Builder.viewContext.Controller.BsRenderPartialView(template, null) : BsResourceManager.Resource("NoResults"); if (this.Builder.allowAddIfEmpty) { var addBtnBuilder = new TagBuilder("button"); addBtnBuilder.MergeAttribute("type", "button"); addBtnBuilder.MergeAttribute("class", "btn btn-primary bs-triggerAdd"); //TODO: addBtnBuilder.InnerHtml += "Add"; infoBuilder.InnerHtml += addBtnBuilder.ToString(); } divBuilder.InnerHtml += infoBuilder.ToString(); rowBuilder.InnerHtml += divBuilder.ToString(); rowsBuilder.InnerHtml += rowBuilder.ToString(); result += rowsBuilder.ToString(); } return(result); }
public string RenderPages() { if (this.Builder.pager != null) { var pagesBuilder = new TagBuilder("div"); pagesBuilder.AddCssClass("col-md-9 col-lg-9 bs-pages"); #region pagination var paginationBuilder = new TagBuilder("ul"); paginationBuilder.AddCssClass("pagination pagination-md"); if (this.Builder.pager.TotalPages <= 1) { paginationBuilder.MergeAttribute("style", "display:none"); } #region first page button if (this.Builder.settings.ShowFirstLastButtons) { var firstPageBuilder = new TagBuilder("li"); if (this.Builder.pager.CurrentPage == 1) { firstPageBuilder.MergeAttribute("class", "disabled"); } var anchorBuilder = new TagBuilder("a"); anchorBuilder.MergeAttribute("href", "#"); anchorBuilder.MergeAttribute("data-page", "1"); anchorBuilder.InnerHtml += "«"; firstPageBuilder.InnerHtml += anchorBuilder.ToString(); paginationBuilder.InnerHtml += firstPageBuilder.ToString(); } #endregion #region prev page button if (this.Builder.settings.ShowPrevNextButtons) { var prevPageBuilder = new TagBuilder("li"); if (this.Builder.pager.CurrentPage == 1) { prevPageBuilder.MergeAttribute("class", "disabled"); } var anchorBuilder = new TagBuilder("a"); anchorBuilder.MergeAttribute("href", "#"); anchorBuilder.MergeAttribute("data-page", (this.Builder.pager.CurrentPage - 1).ToString()); anchorBuilder.InnerHtml += "‹"; prevPageBuilder.InnerHtml += anchorBuilder.ToString(); paginationBuilder.InnerHtml += prevPageBuilder.ToString(); } #endregion #region pages buttons var startPage = this.Builder.pager.GetStartPage(this.Builder.settings.Size); int nr = this.Builder.settings.Size > this.Builder.pager.TotalPages ? this.Builder.pager.TotalPages % this.Builder.settings.Size : this.Builder.settings.Size; for (int i = 0; i < nr; i++) { var page = i + startPage; var pageBtnBuilder = new TagBuilder("li"); if (this.Builder.pager.CurrentPage == page) { pageBtnBuilder.MergeAttribute("class", "active"); } var anchorBuilder = new TagBuilder("a"); anchorBuilder.MergeAttribute("href", "#"); anchorBuilder.MergeAttribute("data-page", page.ToString()); anchorBuilder.InnerHtml += page; pageBtnBuilder.InnerHtml += anchorBuilder.ToString(); paginationBuilder.InnerHtml += pageBtnBuilder.ToString(); } #endregion #region next page button if (this.Builder.settings.ShowPrevNextButtons) { var nextPageBuilder = new TagBuilder("li"); if (this.Builder.pager.CurrentPage == this.Builder.pager.TotalPages) { nextPageBuilder.MergeAttribute("class", "disabled"); } var anchorBuilder = new TagBuilder("a"); anchorBuilder.MergeAttribute("href", "#"); anchorBuilder.MergeAttribute("data-page", (this.Builder.pager.CurrentPage + 1).ToString()); anchorBuilder.InnerHtml += "›"; nextPageBuilder.InnerHtml += anchorBuilder.ToString(); paginationBuilder.InnerHtml += nextPageBuilder.ToString(); } #endregion #region last page button if (this.Builder.settings.ShowFirstLastButtons) { var lastPageBuilder = new TagBuilder("li"); if (this.Builder.pager.CurrentPage == this.Builder.pager.TotalPages) { lastPageBuilder.MergeAttribute("class", "disabled"); } var anchorBuilder = new TagBuilder("a"); anchorBuilder.MergeAttribute("href", "#"); anchorBuilder.MergeAttribute("data-page", this.Builder.pager.TotalPages.ToString()); anchorBuilder.InnerHtml += "»"; lastPageBuilder.InnerHtml += anchorBuilder.ToString(); paginationBuilder.InnerHtml += lastPageBuilder.ToString(); } #endregion pagesBuilder.InnerHtml += paginationBuilder.ToString(); #endregion #region text if (this.Builder.settings.HasPagesText) { var textBuilder = new TagBuilder("div"); textBuilder.MergeAttribute("class", "results_number"); var firstIdx = (this.Builder.pager.CurrentPage - 1) * this.Builder.pager.PageSize + 1; var lastIdx = this.Builder.pager.CurrentPage == this.Builder.pager.TotalPages ? this.Builder.pager.TotalRecords : this.Builder.pager.CurrentPage * this.Builder.pager.PageSize; var lastBuilder = new TagBuilder("span"); lastBuilder.AddCssClass("bs-topResultsMargin"); lastBuilder.InnerHtml += lastIdx; var totalCountBuilder = new TagBuilder("span"); totalCountBuilder.InnerHtml += this.Builder.pager.TotalRecords; //TODO: var template = "{0}-{1} " + BsResourceManager.Resource("Of") + " {2} " + BsResourceManager.Resource("Items"); var result = string.Format(template, firstIdx, lastBuilder, totalCountBuilder.ToString()); //"Rezultate " + firstIdx + "–" + lastIdx + " din"; textBuilder.InnerHtml += result; pagesBuilder.InnerHtml += textBuilder.ToString(); } #endregion return(pagesBuilder.ToString()); } else { return(string.Empty); } }
public override string Render() { var pagerWrapper = new TagBuilder("div"); if (this.Builder.pager == null || this.Builder.pager.TotalRecords == 0) { pagerWrapper.MergeAttribute("style", "display: none;"); } if (this.Builder.settings.StrippedDown) { pagerWrapper.InnerHtml += this.RenderPagination(); } else { pagerWrapper.AddCssClass("row bs-pager"); pagerWrapper.AddCssClass(this.Builder.Theme.GetDescription()); var bsPagerModel = this.Builder.pager; if (bsPagerModel != null && (this.Builder.settings.NoOffset || bsPagerModel.GoTo != null)) { pagerWrapper.MergeAttribute("data-nooffset", "true"); } pagerWrapper.InnerHtml += this.RenderPages(); if (this.Builder.settings.HasPageSizeSelector) { int pageSize = this.Builder.pager != null ? this.Builder.pager.PageSize : this.Builder.baseSettings.PageSize; if (!this.Builder.settings.PageSizeValues.Contains(pageSize)) { throw new ArgumentOutOfRangeException("The page size you selected is not in the list"); } var selectWrapperBuilder = new TagBuilder("div"); selectWrapperBuilder.AddCssClass("col-md-3 col-lg-3 results_per_page"); if (bsPagerModel != null && (this.Builder.settings.NoOffset || bsPagerModel.GoTo != null)) { selectWrapperBuilder.AddCssClass("col-sm-4 col-xs-4"); } if (this.Builder.hidePageSize) { selectWrapperBuilder.AddCssClass("hidden-md hidden-sm hidden-xs"); } var divBuilder = new TagBuilder("div"); divBuilder.AddCssClass("pull-right"); #region right side var dropdownContainerBuilder = new TagBuilder("div"); dropdownContainerBuilder.AddCssClass("dropdown dropup"); var dropdownTriggerBuilder = new TagBuilder("a"); dropdownTriggerBuilder.MergeAttribute("data-toggle", "dropdown"); dropdownTriggerBuilder.MergeAttribute("href", "#"); var dropdownListBuilder = new TagBuilder("ul"); dropdownListBuilder.MergeAttribute("class", "dropdown-menu"); dropdownListBuilder.MergeAttribute("role", "menu"); foreach (var item in this.Builder.settings.PageSizeValues) { var dropdownLiBuilder = new TagBuilder("li"); var dropdownLiAnchorBuilder = new TagBuilder("a"); if (pageSize == item) { var dropdownCountBuilder = new TagBuilder("span"); dropdownCountBuilder.AddCssClass("btn btn-default bs-perPageDisplay"); var caret = new TagBuilder("span"); caret.AddCssClass("caret"); dropdownCountBuilder.InnerHtml += item.ToString() + caret.ToString(); dropdownTriggerBuilder.InnerHtml += dropdownCountBuilder.ToString(); dropdownLiAnchorBuilder.AddCssClass("selected"); } dropdownLiAnchorBuilder.InnerHtml += item; dropdownLiAnchorBuilder.MergeAttribute("data-value", item.ToString()); dropdownLiAnchorBuilder.AddCssClass("bs-perPage"); dropdownLiAnchorBuilder.Attributes.Add("href", "#"); dropdownLiBuilder.InnerHtml += dropdownLiAnchorBuilder.ToString(); dropdownListBuilder.InnerHtml += dropdownLiBuilder.ToString(); } dropdownContainerBuilder.InnerHtml += dropdownTriggerBuilder.ToString(); dropdownContainerBuilder.InnerHtml += dropdownListBuilder.ToString(); divBuilder.InnerHtml += dropdownContainerBuilder.ToString(); var goTopBuilder = new TagBuilder("button"); goTopBuilder.AddCssClass("btn btn-default btn-go_up bs-goTop"); goTopBuilder.MergeAttribute("title", BsResourceManager.Resource("BF_GoTop")); var goTopSpanBuilder = new TagBuilder("span"); goTopSpanBuilder.AddCssClass("glyphicon glyphicon-arrow-up"); goTopBuilder.InnerHtml += goTopSpanBuilder.ToString(); divBuilder.InnerHtml += goTopBuilder.ToString(); #endregion selectWrapperBuilder.InnerHtml += divBuilder.ToString(); pagerWrapper.InnerHtml += selectWrapperBuilder.ToString(); } } return(pagerWrapper.ToString()); }
public override string Render() { var buttons = this.Builder.parts.Where(x => x.button != null); var forms = this.Builder.parts.Where(x => x.form != null); var result = string.Empty; var container = new TagBuilder("div"); container.AddCssClass("search"); if (this.Builder.quickSearch || buttons.Any()) { container.AddCssClass("inline"); var group = new TagBuilder("div"); group.AddCssClass("input-group"); #region Inline Search if (this.Builder.quickSearch) { var glyph = GetGlyphicon(Glyphicon.Search, true); var input = new TagBuilder("input"); input.MergeAttribute("type", "text"); input.MergeAttribute("placeholder", BsResourceManager.Resource("Search")); input.AddCssClass("form-control"); input.AddCssClass("bs-tabInlineSearch"); group.InnerHtml += glyph; group.InnerHtml += input; } #endregion #region Buttons if (buttons.Any()) { var wrapper = new TagBuilder("div"); wrapper.AddCssClass("input-group-btn"); foreach (var btn in buttons.Select(x => x.button)) { wrapper.InnerHtml += btn.ToString(); } group.InnerHtml += wrapper; } #endregion container.InnerHtml += group; } forms.ToList().ForEach(x => { if (string.IsNullOrEmpty(x.form.template)) { x.form.template = x.template; } }); foreach (var form in forms.Select(x => x.form)) { container.InnerHtml += form.ToString(); } result += container; return(result); }
public override string Render() { var nav = new TagBuilder("nav"); nav.AddCssClass("navbar navbar-default"); nav.MergeAttribute("role", "navigation"); var navHeader = new TagBuilder("div"); navHeader.AddCssClass("navbar-header"); var navToggle = new TagBuilder("button"); navToggle.AddCssClass("navbar-toggle"); navToggle.MergeAttributes(new Dictionary <string, object> { { "type", "button" }, { "data-toggle", "collapse" }, { "data-target", ".navbar-ex1-collapse" }, }); var span = new TagBuilder("span"); span.AddCssClass("sr-only"); navToggle.InnerHtml += span; span = new TagBuilder("span"); span.AddCssClass("icon-bar"); navToggle.InnerHtml += span; navToggle.InnerHtml += span; navToggle.InnerHtml += span; navHeader.InnerHtml += navToggle; nav.InnerHtml += navHeader.ToString(); var navbar = new TagBuilder("div"); navbar.AddCssClass("collapse navbar-collapse navbar-ex1-collapse group_editor-navbar"); var list = new TagBuilder("ul"); list.AddCssClass("nav navbar-nav bs-navbar"); foreach (var tab in this.Builder.TabsProperties) { if (!string.IsNullOrEmpty(tab.Name)) { var item = new TagBuilder("li"); if (tab.Selected) { item.AddCssClass("active"); } var anchor = new TagBuilder("a"); anchor.MergeAttribute("href", "#"); anchor.MergeAttribute("data-toggle", "tab"); if (tab.Id != null) { anchor.MergeAttribute("data-tabid", MvcHelpers.Serialize(tab.Id)); } else { throw new Exception("Tab property Id is not set for tab " + tab.Name); } var resourceTabName = BsResourceManager.Resource(tab.Name); anchor.InnerHtml += string.IsNullOrEmpty(resourceTabName) ? tab.Name : resourceTabName; item.InnerHtml += anchor; list.InnerHtml += item; } else { throw new Exception("Tab property Name is not set in BsGroupEditorAttribute"); } } navbar.InnerHtml += list; nav.InnerHtml += navbar.ToString(); return(nav.ToString()); }
protected virtual string RenderItems() { var result = string.Empty; if (!string.IsNullOrEmpty(this.Builder.template)) { var list = new TagBuilder("ul"); list.AddCssClass("group_profiles"); list.AddCssClass("bs-tabItemsList"); if (this.Builder.HasItems) { foreach (var item in this.Builder.Model.GetItems <TRow>()) { var listItem = new TagBuilder("li"); listItem.MergeAttribute("data-objid", MvcHelpers.Serialize(item.GetUniqueID())); listItem.MergeAttribute("data-model", MvcHelpers.Serialize(item)); IDictionary <string, object> itemAttributes = null; if (this.rowConfigurator.htmlExpression != null) { itemAttributes = this.rowConfigurator.htmlExpression.Compile().Invoke(item); } listItem.MergeAttributes(itemAttributes); listItem.MergeClassAttribute("bs-tabItem", itemAttributes); var listItemWrapper = new TagBuilder("div"); listItemWrapper.AddCssClass("media profile large"); if (this.rowConfigurator.avatarExpression != null) { var anchorLeft = new TagBuilder("a"); anchorLeft.MergeAttribute("href", "#"); anchorLeft.AddCssClass("pull-left"); var img = new TagBuilder("img"); img.AddCssClass("media-object"); string avatar = this.rowConfigurator.avatarExpression.Compile().Invoke(item); img.MergeAttribute("src", avatar); anchorLeft.InnerHtml += img; listItemWrapper.InnerHtml += anchorLeft; } var anchorRight = new TagBuilder("a"); anchorRight.MergeAttribute("href", "#"); anchorRight.AddCssClass("btn btn-white select_profile"); var isSelected = IsSelected(item); if (isSelected) { anchorRight.InnerHtml += GetGlyphicon(Glyphicon.Ok); listItem.AddCssClass("selected"); } else { anchorRight.AddCssClass("bs-addBtn"); anchorRight.InnerHtml += GetGlyphicon(Glyphicon.Plus); } if (this.Builder.IsReadonly) { anchorRight.AddCssClass("disabled"); listItem.AddCssClass("bs-notDraggable"); if (!isSelected) { anchorRight.MergeAttribute("style", "display: none;"); } } listItemWrapper.InnerHtml += anchorRight; var templateWrapper = new TagBuilder("div"); templateWrapper.AddCssClass("media-body"); templateWrapper.InnerHtml += this.Builder.RenderModel <TRow>(item, string.Empty); listItemWrapper.InnerHtml += templateWrapper; listItem.InnerHtml += listItemWrapper; list.InnerHtml += listItem; } } else { var listItem = new TagBuilder("li"); listItem.AddCssClass("bs-noResultsTabItem"); var infoBuilder = new TagBuilder("div"); infoBuilder.MergeAttribute("class", "alert alert-info"); infoBuilder.InnerHtml += !string.IsNullOrEmpty(this.Builder.noResultsTemplate) ? this.Builder.viewContext.Controller.BsRenderPartialView(this.Builder.noResultsTemplate, null) : BsResourceManager.Resource("NoResults"); listItem.InnerHtml += infoBuilder.ToString(); list.InnerHtml += listItem; } result += list; } else { throw new Exception("You must set the template for tab " + this.Builder.Uid.ToString()); } return(result); }