2014-01-12 66 views

回答

1

要做到这一点的“Sharepoint方式”是通过创建自定义导航提供程序。从这里微软的站点为样本:

using System; 
using System.Collections.Generic; 
using System.Text; 
using Microsoft.SharePoint.Publishing; 
using Microsoft.SharePoint.Publishing.Navigation; 
using System.Web; 
using System.Web.UI.WebControls; 
using System.Configuration; 

namespace MyCustomNav 
{ 
public class Navigation: PortalSiteMapProvider 
{ 
public override SiteMapNodeCollection GetChildNodes(System.Web.SiteMapNode 
node) 
{ 
PortalSiteMapNode pNode = node as PortalSiteMapNode; 
if (pNode != null) 
{ 
if (pNode.Type == NodeTypes.Area) 
{ 
// TODO: Make your database call here and create the node based on your query.. 

SiteMapNodeCollection nodeColl = base.GetChildNodes(pNode); 
SiteMapNode childNode = new SiteMapNode(this, 
"<http://www.microsoft.com>", "<http://www.microsoft.com>", "Microsoft"); 

SiteMapNode childNode1 = new SiteMapNode(this, 
"<http://support.microsoft.com>", "<http://support.microsoft.com>", "Support"); 

nodeColl.Add(childNode); 

SiteMapNodeCollection test = new SiteMapNodeCollection(); 
test.Add(childNode1); 
childNode.ChildNodes = test; 

return nodeColl; 
} 
else 
return base.GetChildNodes(pNode); 
} 
else 
return new SiteMapNodeCollection(); 
} 
} 
} 

这正好你的web.config

<add name="MyCustomNavigationProvider" type="MyCustomNav.Navigation, MyCustomNav" 
NavigationType="Current" /> 

这个asp的控制

<SharePoint:AspMenu 
ID="TopNavigationMenu" 
    Runat="server" 
    DataSourceID="topSiteMap1" 
    EnableViewState="false" 
    AccessKey="<%$Resources:wss,navigation_accesskey%>" 
    Orientation="Horizontal" 
    StaticDisplayLevels="1" 
    MaximumDynamicDisplayLevels="3" 
    DynamicHorizontalOffset="0" 
    StaticPopoutImageUrl="/_layouts/images/menudark.gif" 
    StaticPopoutImageTextFormatString="" 
    DynamicHoverStyle-BackColor="#CBE3F0" 
    SkipLinkText="" 
    StaticSubMenuIndent="0" 
    CssClass="ms-topNavContainer"> 
<StaticMenuStyle/> 
<StaticMenuItemStyle CssClass="ms-topnav" ItemSpacing="0px"/> 
<StaticSelectedStyle CssClass="ms-topnavselected" /> 
<StaticHoverStyle CssClass="ms-topNavHover" /> 
<DynamicMenuStyle BackColor="#F2F3F4" BorderColor="#A7B4CE" 
    BorderWidth="1px"/> 
<DynamicMenuItemStyle CssClass="ms-topNavFlyOuts"/> 
<DynamicHoverStyle CssClass="ms-topNavFlyOutsHover"/> 
<DynamicSelectedStyle CssClass="ms-topNavFlyOutsSelected"/> 
</SharePoint:AspMenu> 
<asp:SiteMapDataSource 
    ShowStartingNode="False" 
    SiteMapProvider="MyCustomNavigationProvider" 
    id="topSiteMap1" 
    runat="server" 
    StartFromCurrentNode="true"/> 

全部文章在这里:

http://msdn.microsoft.com/en-us/library/cc789625%28v=office.14%29.aspx

相关问题