På en EpiServer prosjekt er det gjort en endring sånn det brukes ikke standard topmenu men top menu er bygget ved java script for å fylle krav at under meny skal vises i drop down når mouse over.
Så left menu vises ikke det hele tatt når disse lenkene på top menu er brukt.
Jeg brukte denne koden blant andre forsøk å fylle left menu:
private MenuList menuListControl1;
private void Page_Load(object sender, System.EventArgs e)
{
fillMenuList();
if(!IsPostBack){
if(menuListControl1 != null) PageTreeControl.DataSource = menuListControl1;
PageTreeControl.DataBind();
}
}
public MenuList MenuListControl
{
set{_menuListControl = value;}
get{return (MenuList)_menuListControl;}
}
// protected PageReference MenuRoot
// {
// get
// {
// if(CurrentPage["MainMenuContainer"] != null)
// return (PageReference)CurrentPage["MainMenuContainer"];
// else
// return Configuration.StartPage;
// }
// }
protected void fillMenuList()
{
PageDataCollection pages = EPiServer.Global.EPDataFactory.GetChildren(CurrentPage.PageLink,EPiServer.Security.AccessControlList.NoAccess);
if(pages.Count!=0)
{
menuListControl1.DataSource = pages;
menuListControl1.DataBind();
}
}
continues.....
Det fåes ingen kompilerings feil men feilmeliding fått ved kjøring er:-
Objektreferanse er ikke satt til en objektforekomst.
og reagerer på:-
menuListControl1.DataSource = pages;
det må være en måte å fylle leftmenu pagetree til left menu enn det som er standard.
En annen alternativ brukt var:-
Den henter alle riktige sider men PageTreeControl er alltid tøm
PageTree pg = new PageTree();
PageTreeLoader loader = new PageTreeLoader();
PageDataCollection pages = loader.GetCompletePageTree(CurrentPage.PageLink,Global.EPDataFactory);
pg.DataSource =
PageTreeReader reader = new PageTreeReader(pages);
pg.DataSource = reader;
PageTreeControl.DataSource = pg;
PageTreeControl.DataBind();