我正在使用 SharePoint Foundation 2010,我想创建一个多级导航。(类似于发布网站在 SharePoint Standard 中允许的内容。我意识到这可能是使用自定义站点地图提供程序构建的,我已经研究过了。
这里的关键是,我希望它只显示登录用户有权访问的页面和站点。
目前,我已经开始开发 Web 部件。在此 Web 部件中,我编写了一些 c# 代码来循环并获取所有站点和子页面(并检查用户是否具有权限),然后将它们添加到标签中。最终我想将它们添加到 asp:menu 或创建一个然后使用一些 css 或 jquery 来操纵它来执行下拉功能。
这是我的一些代码:
using (SPWeb oWebsite = new SPSite(webUrl).OpenWeb())
{
SPWebCollection collWebsite = oWebsite.Webs;
foreach (SPWeb subSite in collWebsite)
{
if (subSite.DoesUserHavePermissions(SPContext.Current.Web.CurrentUser.LoginName, SPBasePermissions.Open))
{
Label1.Text += SPEncode.HtmlEncode(subSite.Title) + "<BR>";
}
SPList pagelist = subSite.Lists["Site Pages"];
foreach (SPListItem item in pagelist.Items)
{
if (item.DoesUserHavePermissions(SPContext.Current.Web.CurrentUser, SPBasePermissions.Open))
{
Label1.Text += item.Name + "<BR>";
}
}
Label1.Text += "<BR><BR>";
subSite.Close();
}
Label1.Text += "<BR><BR><BR><BR>";
}
}
我不想将站点或页面添加到标签,而是在这里创建列表。最终目标是将此 Web 部件放在母版页上,并允许它根据权限为用户提供一些导航。
我还发现了一些 css 可以通过简单地添加元素来允许多级导航工作
我是在正确的轨道上还是有另一种可能同样有效甚至更好的方法?
TIA。