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; } } }
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(); }