private static string CreateOption(SelectListItemTree item, int level, string indentation) { StringBuilder htmlBuilder = new StringBuilder(); TagBuilder option = new TagBuilder("option"); option.InnerHtml = GetIndentation(level, indentation) + System.Web.HttpUtility.HtmlEncode(item.Text); if (item.Value != null) { option.Attributes["Value"] = item.Value; } if (item.Selected) { option.Attributes["selected"] = "selected"; } htmlBuilder.AppendLine(option.ToString()); if (item.Items != null) { ++level; foreach (var i in item.Items) { htmlBuilder.AppendLine(CreateOption(i, level, indentation)); } } return(htmlBuilder.ToString()); }
private void ToSelectListItem(FolderTreeNode<MediaFolder> node, List<SelectListItem> list, SelectListItem parent) { SelectListItemTree listItem = new SelectListItemTree() { Text = (parent == null ? "" : parent.Text + " >> ") + node.Folder.FriendlyText, Value = node.Folder.FullName }; list.Add(listItem); if (node.Children != null) { foreach (var item in node.Children) { ToSelectListItem(item, list, listItem); } } }
public static IHtmlString DropDownListTree(this HtmlHelper htmlHelper, string name, IEnumerable<SelectListItemTree> selectListItemTree, IDictionary<string, object> htmlAttributes, bool allowMutiple, string optionLabel, string indentation) { ModelState state; name = htmlHelper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(name); if (string.IsNullOrEmpty(name)) { throw new ArgumentException("NULL", "name"); } int level = 0; TagBuilder selectBuilder = new TagBuilder("select"); StringBuilder optionBuilder = new StringBuilder(); //var blankOption = new TagBuilder("option"); //optionBuilder.AppendLine(blankOption.ToString()); if (optionLabel != null) { SelectListItemTree item = new SelectListItemTree(); item.Text = optionLabel; item.Value = string.Empty; optionBuilder.AppendLine(CreateOption(item, level, indentation)); } foreach (var item in selectListItemTree) { optionBuilder.AppendLine(CreateOption(item, level, indentation)); } selectBuilder.InnerHtml = optionBuilder.ToString(); selectBuilder.MergeAttributes<string, object>(htmlAttributes); selectBuilder.MergeAttribute("name", name, true); selectBuilder.GenerateId(name); if (allowMutiple) { selectBuilder.MergeAttribute("mutiple", "mutiple"); } if (htmlHelper.ViewData.ModelState.TryGetValue(name, out state) && (state.Errors.Count > 0)) { selectBuilder.AddCssClass(HtmlHelper.ValidationInputCssClassName); } return new HtmlString(selectBuilder.ToString()); }
public static IHtmlString DropDownListTree(this HtmlHelper htmlHelper, string name, IEnumerable <SelectListItemTree> selectListItemTree, IDictionary <string, object> htmlAttributes, bool allowMutiple, string optionLabel, string indentation) { ModelState state; name = htmlHelper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(name); if (string.IsNullOrEmpty(name)) { throw new ArgumentException("NULL", "name"); } int level = 0; TagBuilder selectBuilder = new TagBuilder("select"); StringBuilder optionBuilder = new StringBuilder(); //var blankOption = new TagBuilder("option"); //optionBuilder.AppendLine(blankOption.ToString()); if (optionLabel != null) { SelectListItemTree item = new SelectListItemTree(); item.Text = optionLabel; item.Value = string.Empty; optionBuilder.AppendLine(CreateOption(item, level, indentation)); } foreach (var item in selectListItemTree) { optionBuilder.AppendLine(CreateOption(item, level, indentation)); } selectBuilder.InnerHtml = optionBuilder.ToString(); selectBuilder.MergeAttributes <string, object>(htmlAttributes); selectBuilder.MergeAttribute("name", name, true); selectBuilder.GenerateId(name); if (allowMutiple) { selectBuilder.MergeAttribute("mutiple", "mutiple"); } if (htmlHelper.ViewData.ModelState.TryGetValue(name, out state) && (state.Errors.Count > 0)) { selectBuilder.AddCssClass(HtmlHelper.ValidationInputCssClassName); } return(new HtmlString(selectBuilder.ToString())); }
private void AddSelectListItem(TextFolder textFolder, List<SelectListItem> list, SelectListItem parent = null) { SelectListItemTree item = new SelectListItemTree { Text = (parent == null ? "" : parent.Text + " >> ") + textFolder.FriendlyText, Value = textFolder.FullName }; list.Add(item); var childFolders = ServiceFactory.TextFolderManager.ChildFolders(textFolder); if (childFolders != null) { childFolders.ForEach((folder, index) => { AddSelectListItem(folder, list, item); }); } }
private SelectListItemTree InitItem(TextFolder textFolder, Repository repository) { SelectListItemTree item = new SelectListItemTree { Text = string.IsNullOrEmpty(textFolder.DisplayName) ? textFolder.Name : textFolder.DisplayName, Value = textFolder.FullName }; textFolder.Repository = repository; var childFolders = ServiceFactory.TextFolderManager.ChildFolders(textFolder); if (childFolders != null) { item.Items = childFolders.Select(o => InitItem(o, repository)); } return item; }
private static SelectListItemTree CreateItem(SiteNode siteNode, RequestContext requestContext) { if (siteNode == null) { return new SelectListItemTree(); } var selectListItem = new SelectListItemTree(); var site = Kooboo.CMS.Sites.Models.IPersistableExtensions.AsActual(siteNode.Site); selectListItem.Text = string.IsNullOrEmpty(site.DisplayName) ? site.Name : site.DisplayName; selectListItem.Value = site.FullName; string parent = requestContext.GetRequestValue("parent"); selectListItem.Selected = site.FullName.EqualsOrNullEmpty(parent, StringComparison.CurrentCultureIgnoreCase); var children = siteNode.Children; var items = new List<SelectListItemTree>(); foreach (var c in children) { items.Add(CreateItem(c, requestContext)); } selectListItem.Items = items; return selectListItem; }
private static string CreateOption(SelectListItemTree item, int level, string indentation) { StringBuilder htmlBuilder = new StringBuilder(); TagBuilder option = new TagBuilder("option"); option.InnerHtml = GetIndentation(level, indentation) + System.Web.HttpUtility.HtmlEncode(item.Text); if (item.Value != null) { option.Attributes["Value"] = item.Value; } if (item.Selected) { option.Attributes["selected"] = "selected"; } htmlBuilder.AppendLine(option.ToString()); if (item.Items != null) { ++level; foreach (var i in item.Items) { htmlBuilder.AppendLine(CreateOption(i, level, indentation)); } } return htmlBuilder.ToString(); }
private SelectListItemTree CreateSelectItemTreeNode(Page parent) { var node = new SelectListItemTree(); node.Text = parent.Name; node.Value = parent.FullName; var children = ServiceFactory.PageManager.ChildPages(Site.Current, parent.FullName, null); if (children != null) { node.Items = children.Select(o => CreateSelectItemTreeNode(o)); } return node; }