Ejemplo n.º 1
0
        /// <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));
        }
Ejemplo n.º 2
0
        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));
            }
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        /// <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));
        }