Im CMS Qualisite lässt sich die Navigation in das Layout-Template per User-Controls einbinden. Hier ein Beispiel für eine Navigation mit 2 Ebenen, falls es zu einem Menüpunkt eine 2te Menüebene gibt, dann wird diese angezeigt:
<%
@ Control Language="c#" %>
<%@ import Namespace="PGK.Qualisite.Application.Site" %>
<%@ import Namespace="PGK.Qualisite.Application" %>
<
script runat="server">
void Page_Load(object sender, System.EventArgs e) {
if(CmsContext.Current.Page.Navigation != null) {
this.RP_SubNav.DataSource = CmsContext.Current.Page.Navigation.GetHierarchyByLevel(1);
this.RP_SubNav.DataBind();
}
}
void RP_SubSubNav_PreRender(object sender, EventArgs e) {
Repeater rp = (Repeater) sender;
rp.Visible = (rp.Items.Count > 0);
}
</
script>
<asp:Repeater id="RP_SubNav" Runat="server">
<ItemTemplate>
<a href='<%# ((NavigationItem) Container.DataItem).GetLinkRecursive().ToString() %>' target='<%# ((NavigationItem) Container.DataItem).GetLinkRecursive().ToString("{1}") %>'>> <%# ((NavigationItem) Container.DataItem).Title %></a>
<br />
<asp:Repeater Runat="server" DataSource='<%# (((NavigationItem) Container.DataItem).IsInActiveHierarchy() ? CmsContext.Current.Page.Navigation.GetHierarchyByLevel(2) : null ) %>' OnPreRender="RP_SubSubNav_PreRender">
<ItemTemplate>
<a href='<%# ((NavigationItem) Container.DataItem).GetLinkRecursive().ToString() %>' target='<%# ((NavigationItem) Container.DataItem).GetLinkRecursive().ToString("{1}") %>'>> <%# ((NavigationItem) Container.DataItem).Title %></a>
<br />
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</
asp:Repeater>
Mit geeigentem HTML-Code und Style-Sheets lässt sich die Navigation jedem Layout anpassen.