【问题标题】:Sharepoint create site navigation through programmingSharepoint 通过编程创建站点导航
【发布时间】:2010-09-16 23:02:22
【问题描述】:
我在 sharepoint 中有一个要求,我想在其中创建基于 excel 文件的顶部链接导航。意味着在 excel 文件中提到了站点导航结构(以及父站点下的父站点子站点)。我需要阅读该结构并基于修改 sharepoint 中的导航。
请任何人告诉我是否可以以这种方式配置导航。如果是,请告诉我如何实现它。
仅供参考:我使用的是 MOSS 2007。
提前致谢
萨钦·卡特卡
【问题讨论】:
标签:
sharepoint
moss
navigation
wss
【解决方案1】:
如果这是一个发布网站,您可以使用类似于以下的代码:
PublishingWeb publishingWeb = PublishingWeb.GetPublishingWeb(SPContext.Current.Web);
SPNavigationSiteMapNode.CreateSPNavigationNode(title, url, NodeTypes.AuthoredLinkToPage, publishingWeb.GlobalNavigationNodes);
publishingWeb.Update();
【解决方案2】:
是的,您可以这样做。
我也有几乎相同的要求。我通过以下方式完成了这项任务
- 创建用于读取 excel 文件并创建菜单的 webpart
- 使用 sharepoint 设计器打开母版页并注释呈现顶部导航的行并将新 Web 部件放在那里
- 在其子网站中继承此母版页。
如果您需要更多帮助,请询问我,我可以帮助您
【解决方案3】:
哇,这似乎是一个非常糟糕的主意。为什么不使用 SharePoint 列表来填充静态菜单?创建更容易,速度更快,因为它不需要打开 Excel 工作表,并且您可以根据需要从 Excel 工作表中复制和粘贴值。
或者,我使用 Excel 工作表来收集有关 SharePoint 网站结构的数据,例如哪些站点、模板和子站点等。从该 Excel 工作表中,我生成一个脚本,使用 http://stsadm.blogspot.com 中的命令构建站点结构
这样,您的菜单将遵循 Excel 工作表的数据,并且不会有笨拙的自定义代码。
【解决方案4】:
有两种方法可以实现这一点 - 在现有 SharePoint 导航结构中添加/删除节点,或者更改菜单控件使用的数据源。
要修改标准导航设置(导航自定义继续工作,因为它通常开箱即用)使用方法
web.Navigation.TopNavigationBar
另一个选项涉及编辑母版页(或适当的委托控件)并更改 AspMenu 和 SiteMapDataSource 元素以使用不同的 SiteMapProvider。您可以创建自己的实现,也可以使用从 xml 文件读取的开箱即用的实现。如果您选择此选项,用户将无法通过导航设置编辑菜单。