我被要求创建一个asp.net UserControl,允许在SharePoint 2007网站的子网站之间进行自定义导航。这些网站模仿学校结构,学期有不同的课程组。以下是网站结构的简化版本:
Site Root
Search
Semester1
Class Group 1
Class 1
Page1.aspx
Page2.aspx
Class 2
Page1.aspx
Page2.aspx
Class Group 2
Class 3
Page1.aspx
Page2.aspx
Class 4
Page1.aspx
Page2.aspx
Semester2
Class Group 1
Class 1
Page1.aspx
Page2.aspx
Class 2
Page1.aspx
Page2.aspx
Class Group 2
Class 3
Page1.aspx
Page2.aspx
Class 4
Page1.aspx
Page2.aspx
Some Other Subsites
UserControl将放在类的.aspx页面上。其目的是允许用户导航到不同类组之间的相同页面。
E.G。假设我在Semester1 / Class Group 1 / Class 1 / Page2.aspx上。 UserControl允许我选择Semester1下的任何其他类。选择后,它会自动导航到[selected class] /Page2.aspx(因为我目前在Page2.aspx上)。
在此之前,我从未使用过SiteMapProvider。到目前为止,我只是通过编程方式遍历站点结构,并使用默认的CombinedNavSiteMapProvider PortalSiteMapProvider将简单的站点地图打印到页面。我认为我需要但不确定该怎么做:
从那里开始,我想我可以使用菜单事件来处理导航。如果我在Semester1 / Class Group 1 / Class 1 / Page2.aspx上的UserControl菜单示例:
Change Class
Class Group 1
Class 1
Class 2
Class Group 2
Class 3
Class 4
如何完成上面的项目符号项目?
答案 0 :(得分:0)
我没有找到任何优雅的东西。我最终将一个asp.net菜单绑定到CombinedNavSiteMapProvider,然后在DataBound事件处理程序中,我修改了代码中的菜单项。我插入一个根“更改类”项,然后使用一个小的递归方法将任何具有子项的菜单项的IsSelectable设置为false。