Example #1
0
        public static void BindTo <TNavigationItem, TDataItem>(this INavigationItemComponent <TNavigationItem> component, IEnumerable <TDataItem> dataSource, Action <TNavigationItem, TDataItem> action) where TNavigationItem : NavigationItem <TNavigationItem>, new()
        {
            foreach (TDataItem dataItem in dataSource)
            {
                var item = new TNavigationItem();

                component.Items.Add(item);

                action(item, dataItem);
            }
        }
Example #2
0
        public static void BindTo <T>(this INavigationItemComponent <T> component, string sitemapName, Action <T, SiteMapNode> siteMapAction) where T : NavigationItem <T>, new()
        {
            var siteMap = component.ViewContext.ViewData.Eval(sitemapName) as SiteMapBase ??
                          (SiteMapManager.SiteMaps.ContainsKey(sitemapName) ? SiteMapManager.SiteMaps[sitemapName] : null);

            if (siteMap == null)
            {
                throw new NotSupportedException(Exceptions.SiteMapShouldBeDefinedInViewData.FormatWith(sitemapName));
            }

            component.Items.Clear();

            foreach (SiteMapNode node in siteMap.RootNode.ChildNodes)
            {
                LoadItemsFromSiteMapNode(node, component, siteMapAction);
            }
        }
Example #3
0
 public static void BindTo <T>(this INavigationItemComponent <T> component, string sitemapViewDataKey) where T : NavigationItem <T>, new()
 {
     BindTo(component, sitemapViewDataKey, null);
 }