Esempio n. 1
0
        public static string GetItemUrl <TComponent, TItem>(this TComponent component, TItem item, string defaultValue)
            where TComponent : WidgetBase, INavigationItemComponent <TItem>
            where TItem : NavigationItem <TItem>, IContentContainer
        {
            string url = item.GenerateUrl(((WidgetBase)component).ViewContext, component.UrlGenerator);

            if (url != null)
            {
                return(url);
            }

            IAsyncContentContainer asyncContentContainer = item as IAsyncContentContainer;

            if (asyncContentContainer != null && asyncContentContainer.ContentUrl.HasValue())
            {
                return(component.IsSelfInitialized ? System.Web.HttpUtility.UrlDecode(asyncContentContainer.ContentUrl) : asyncContentContainer.ContentUrl);
            }

            if (item.Template.HasValue() &&
                !item.RouteName.HasValue() && !item.Url.HasValue() &&
                !item.ActionName.HasValue() && !item.ControllerName.HasValue())
            {
                return((component.IsInClientTemplate ? "\\#" : "#") + component.GetItemContentId(item));
            }

            return(defaultValue);
        }
Esempio n. 2
0
        public static string GetItemUrl <TComponent, TItem>(this TComponent component, TItem item, string defaultValue)
            where TComponent : TreeViewBase,
        IEssentialItem <TItem>
            where TItem : EssentialItem <TItem>
        {
            string str = GenerateUrl <TItem>(item, ((TreeViewBase)component).ViewContext);

            if (str != null)
            {
                return(str);
            }
            IAsyncContentContainer container = item as IAsyncContentContainer;

            if ((container != null) && container.ContentUrl.HasValue())
            {
                return(!component.IsSelfInitialized ? container.ContentUrl : HttpUtility.UrlDecode(container.ContentUrl));
            }
            if (((item.Template.HasValue() && !item.RouteName.HasValue()) && (!item.Url.HasValue() && !item.ActionName.HasValue())) && !item.ControllerName.HasValue())
            {
                return((!component.IsInClientTemplate ? "#" : @"\#") + component.GetItemContentId <TComponent, TItem>(item));
            }
            return(defaultValue);
        }