关闭

wss如何将顶部导航栏作成下拉菜单

693人阅读 评论(0) 收藏 举报

当子网站太多时,会在顶部导航栏排成一长排,很难看,这时候,做成下拉菜单的样子就好看的多了。

那么如何实现呢?在wss 3.0中是不能直接修改导航栏的选项的(moss似乎有,求证),所以需要我们写代码来实现。

zizi在网上查阅到的大部分资料都是修改母页版。找到网站集主页的default.master,用sharepoint designer打开 ,找到代码如下图:

 

      ID="TopNavigationMenu"
      Runat
="server"
      DataSourceID
="topSiteMap"
      EnableViewState
="false"
      AccessKey
="<%$Resources:wss,navigation_accesskey%>"
      Orientation
="Horizontal"
      StaticDisplayLevels
="1"
      MaximumDynamicDisplayLevels
="2"
      DynamicHorizontalOffset
="0"
      StaticPopoutImageUrl
="/_layouts/images/menudark.gif"
      StaticPopoutImageTextFormatString
=""
      DynamicHoverStyle
-BackColor="#CBE3F0"
      SkipLinkText
=""
      StaticSubMenuIndent
="0"

 

 

 

看到 “StaticDisplayLevels” 和“ MaximumDynamicDisplayLevels” 这两个属性。通过查阅msdn,找到“StaticDisplayLevels”是静态菜单的菜单显示级别数,默认值为 1;“ MaximumDynamicDisplayLevels”是动态菜单的菜单呈现级别数,默认值为 3。关于这两个属性,给出msdn的链接,有详细说明。http://msdn2.microsoft.com/zh-cn/library/system.web.ui.webcontrols.menu.staticdisplaylevels(VS.80).aspx

http://msdn2.microsoft.com/zh-cn/library/system.web.ui.webcontrols.menu.maximumdynamicdisplaylevels(VS.80).aspx

似乎把这两个属性的值改一改,就可以实现下拉菜单。那么是不是就这么简单呢?

很明显,这就和有人莫明其妙请我吃午饭一样不可能(当然zizi把这两个的值改了无数次,无果)。

那么该怎么办呢?俗话说得好,内事不决问老婆,外事不决问google。汗......还没老婆呢,问google吧。

查了好久,终于找到了办法。

建立一个控制台应用程序,部分代码如下:

 

            SPSite site = new SPSite("site url");
            SPWeb web 
= site.OpenWeb();
            SPList list 
= web.Lists[0];
            SPNavigationNode node 
= null;
            node 
= new SPNavigationNode("title""url"false);
            SPNavigationNode rootListLink 
= web.Navigation.TopNavigationBar[0];
            rootListLink.Children.AddAsFirst(node);

 

编译,调试。

刷新我们的wss站点看一下,如何?好了,终于实现了!

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4242次
    • 积分:88
    • 等级:
    • 排名:千里之外
    • 原创:5篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档