获取快速启动:
SPNavigationNodeCollection nodes = site.Navigation.QuickLaunch;
Spd中添加xml数据源控件,设置XPath属性/*/*,更改aspmenu控件的datasourceid属性为xml数据源控件,修改显示相关属性,添加<DataBindings><asp:MenuItemBinding DataMember="menuItem" NavigateUrlField="url" TextField="title" /></DataBindins>
在MOSS中所有导航栏都是通过ASP:Menu控件或是ASP:TreeView控件绑定到一个NavigationDataSource实现的,因此每一个导航菜单都有两个控件共同实现。首先是一个ASP:Menu控件定义导航栏的样式和层级属性,其次是有一个 asp:SiteMapDataSource或SPNavigationProvider来作为导航栏的数据源。
<SharePoint:DelegateControl runat="server" ControlId="TopNavigationDataSource">
<Template_Controls>
<asp:SiteMapDataSource
ShowStartingNode="False"
SiteMapProvider="SPNavigationProvider"
id="topSiteMap"
runat="server"
StartingNodeUrl="sid:1002"/>
</Template_Controls>
</SharePoint:DelegateControl>
自己定义一个asp:menu控件也可以自定义导航
<asp:Menu DataSourceID="DemoXmlDataSource" ID="DemoCustomMenu" runat="server"
BackColor="#F1F1F1" DynamicHorizontalOffset="2" Font-Names="Verdana" ForeColor="#990000"
StaticSubMenuIndent="0" Orientation="Vertical" StaticDisplayLevels="2" ItemWrap="true"
MaximumDynamicDisplayLevels="0">
<DataBindings>
<asp:MenuItemBinding DataMember="siteMapNode" NavigateUrlField="url"
TextField="title" ToolTipField="description" ValueField="title" />
</DataBindings>
</asp:Menu>
<asp:XmlDataSource DataFile="sitemap.xml" ID="DemoXmlDataSource" runat="server" XPath="/*/*"></asp:XmlDataSource>
添加导航栏
SPSite site = new SPSite(siteurl);
SPWeb web = site.OpenWeb();
SPList list = web.Lists["取件客服受理"];
string listtitle = list.Title; //列表名称
string listurl = list.DefaultViewUrl; //列表URL
#region 添加一级导航栏
SPNavigationNodeCollection navigationnode = web.Navigation.QuickLaunch;
SPNavigationNode menuItem = new SPNavigationNode(listtitle, listurl, true);
navigationnode.AddAsLast(menuItem);
#endregion
#region 添加二级导航栏
SPNavigationNode menuItem1 = new SPNavigationNode(listtitle, listurl, true);
navigationnode[1].Children.AddAsLast(menuItem1);
#endregion
web.Update();
删除导航栏
int menuItemId = 0;
SPNavigationNode menuItem = navigationnode.Navigation.GetNodeById(menuItemId);
navigationnode.Delete(menuItem);
或
int menuItemId = 0;
navigationnode.Delete(navigationnode[0]);
(未完)