예제 #1
0
 private void SetTarget(DropDownMenuItem i, IMenu m)
 {
     if (m.TopWindow)
     {
         i.Target = "_top";
     }
     else if (m.NewWindow)
     {
         i.Target = "_blank";
     }
     else
     {
         if (string.IsNullOrEmpty(Target))
         {
             i.Target = "_self";
         }
         else
         {
             i.Target = Target;
         }
     }
 }
예제 #2
0
        public override void DataBind()
        {
            //this only handles one-level menus, needs to be made recursive

            Items.Clear();

            var parents = DataSource.Where(x => x.MenuParentID == 0).OrderBy(x => x.SortOrder);

            foreach (var pmenu in parents)
            {
                DropDownMenuItem p = new DropDownMenuItem(pmenu.MenuText, pmenu.MenuURL, pmenu.IsVisible(DataSource.Client))
                {
                    CssClass = pmenu.MenuCssClass
                };

                SetTarget(p, pmenu);

                var children = DataSource.Where(x => x.MenuParentID == pmenu.MenuID).OrderBy(x => x.SortOrder);

                foreach (var cmenu in children)
                {
                    DropDownMenuItem c = new DropDownMenuItem(cmenu.MenuText, cmenu.MenuURL, cmenu.IsVisible(DataSource.Client))
                    {
                        CssClass = cmenu.MenuCssClass
                    };

                    SetTarget(c, cmenu);

                    p.Items.Add(c);
                }

                Items.Add(p);
            }

            base.DataBind();
        }