umbraco - usercontrols - umbracoNaviHide

时间:2011-05-16 22:53:19

标签: umbraco

我知道我可以使用'var top = Node.GetCurrent();'获取当前节点但我似乎无法找到我可以获得相关属性的地方,特别是'umbracoNaviHide'。我想知道如何在用户控件中访问可从XSLT访问的相同数据

2 个答案:

答案 0 :(得分:1)

要获取属性,您需要使用GetProperty()方法。

var top = Node.GetCurrent(); 。top.GetProperty( “umbracoNaviHide”)值;

答案 1 :(得分:0)

在Umbraco 8中,您将必须执行以下操作:

    private List<NavigationListItem> GetChildNavigationList(IPublishedContent page)
    {
        List<NavigationListItem> listItems = null;
        var childPages = page.Children.Where(i => i.IsPublished());

        if (childPages != null && childPages.Any() && childPages.Count() > 0)
        {
            listItems = new List<NavigationListItem>();
            foreach (var childPage in childPages)
            {
                int myTrueFalseFieldValue = 1;
                if (childPage.HasProperty("umbracoNaviHide"))
                {
                    Int32.TryParse(childPage.GetProperty("umbracoNaviHide").GetValue().ToString(), out myTrueFalseFieldValue);
                    //myTrueFalseFieldValue = 0 // hide the page
                    //myTrueFalseFieldValue = 1 // don't hide the page
                    string name = childPage.Name;
                    int test = myTrueFalseFieldValue;
                }

                if (myTrueFalseFieldValue == 1)
                {
                    NavigationListItem listItem = new NavigationListItem(new NavigationLink(childPage.Url, childPage.Name));
                    listItem.Items = GetChildNavigationList(childPage);
                    listItems.Add(listItem);
                }
            }
        }
        return listItems;
    }

以上代码将确保将umbrachoNaviHide复选框属性设置为true的那些页面不会包含在导航列表中。

要了解如何制作自定义属性:umbracoNaviHide,请在youtube上搜索“ Day11:在Umbraco中隐藏导航页面”