/// <summary>Adds a content part to a containing control. Override this method to adapt how a part is added to a parent.</summary> /// <param name="item"></param> /// <param name="container"></param> /// <returns></returns> public virtual Control AddTo(ContentItem item, Control container) { IAddablePart addablePart = item as IAddablePart; if (addablePart != null) { return(addablePart.AddTo(container)); } var renderer = item as Rendering.IContentRenderer ?? RendererSelector.ResolveRenderer(item.GetContentType()); if (renderer != null) { var rendererControl = new ContentRendererControl(renderer, new Rendering.ContentRenderingContext { Content = item, Container = container }); container.Controls.Add(rendererControl); return(rendererControl); } string templateUrl = GetTemplateUrl(item); if (string.IsNullOrEmpty(templateUrl)) { return(null); } return(ItemUtility.AddUserControl(Url.ResolveTokens(templateUrl), container, item)); }
protected virtual void AddChildItem(Control container, ContentItem item) { if (AddingChild != null) { AddingChild.Invoke(this, new ItemEventArgs(item)); } Control addedControl; if (GettingItemTemplate != null) { TemplateUrlEventArgs args = new TemplateUrlEventArgs(item); GettingItemTemplate(this, args); if (string.IsNullOrEmpty(args.TemplateUrl)) { addedControl = PartsAdapter.AddChildPart(item, container); } else { addedControl = ItemUtility.AddUserControl(args.TemplateUrl, container, args.Item); } } else { addedControl = PartsAdapter.AddChildPart(item, container); } if (AddedItemTemplate != null) { AddedItemTemplate.Invoke(this, new ControlEventArgs(addedControl)); } }
Control IDisplayable.AddTo(ContentItem item, string detailName, Control container) { ContentItem linkedItem = item[detailName] as ContentItem; if (linkedItem != null) { if (linkedItem.IsPage) { return(DisplayableAnchorAttribute.GetLinkBuilder(item, linkedItem, detailName, null, null).AddTo(container)); } return(ItemUtility.AddUserControl(container, linkedItem)); } return(null); }
/// <summary>Adds a content part to a containing control. Override this method to adapt how a part is added to a parent.</summary> /// <param name="item"></param> /// <param name="container"></param> /// <returns></returns> public virtual Control AddTo(ContentItem item, Control container) { IAddablePart addablePart = item as IAddablePart; if (addablePart != null) { return(addablePart.AddTo(container)); } string templateUrl = GetTemplateUrl(item); if (string.IsNullOrEmpty(templateUrl)) { return(null); } return(ItemUtility.AddUserControl(Url.ResolveTokens(templateUrl), container, item)); }