locked
sharepoint2010上母版页中的导航控件AspMenu的问题 RRS feed

  • 问题

  • 我在母版页中加了个导航菜单,数据源是一个xml文件,当页面显示的时候菜单显示了,但是当点击其中一个菜单项时,设置的<StaticSelectedStyle CssClass="YumMenuSelectedItem"/>中选择时的样式没有效果,调查了下发现母版页本身自带的aspmenu控件当点击其中1个菜单项时,加载时应该会给这个菜单项添加css类selected类选择器,

    但是我自己添加的这个控件当点击时,样式中没有添加selected类选择器。所以设置的<StaticSelectedStyle CssClass="YumMenuSelectedItem"/>无效。我问下是不是我代码有哪边需要修改设置的?

    母版页中使用aspmenu控件的代码

    <div class="YumMenu">
    
    <SharePoint:AspMenu
    
    	 ID="TopNavigationMenuV4"
    
    	 Runat="server"
    
    	 EnableViewState="false"
    
    	 DataSourceID="SPXmlDataSource1"
    
    	 AccessKey="<%$Resources:wss,navigation_accesskey%>"
    
    	 UseSimpleRendering="true"
    
    	 UseSeparateCss="false"
    
    	 Orientation="Horizontal"
    
    	 StaticDisplayLevels="1"
    
    	 MaximumDynamicDisplayLevels="3"
    
    	 StaticSubMenuIndent="5"
    
    	 SkipLinkText="" 
    
    	 CssClass="s4-tn">
    
    	 <DataBindings>
    
    	<asp:MenuItemBinding DataMember="siteMapNode" NavigateUrlField="url" 
    
    
    
    TextField="title" /> 
    
    	<asp:MenuItemBinding DataMember="siteMapNode" NavigateUrlField="url" 
    
    
    
    TextField="title" /> 
    
    	<asp:MenuItemBinding DataMember="siteMapNode" NavigateUrlField="url" 
    
    
    
    TextField="title" /> 
    
    	</DataBindings>		
    
    		<StaticMenuItemStyle CssClass="YumMenuItem" />
    
    		<StaticSelectedStyle CssClass="YumMenuSelectedItem"/>
    
    		
    
    <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></div>
    
    	<SharePoint:SPXmlDataSource runat="server" id="SPXmlDataSource1" XPath="/*/*">
    
    		<DataFileParameters>
    
    <asp:parameter DefaultValue="SiteMap.xml" Name="FileName"></asp:parameter>
    
    <asp:parameter Name="FilePath"></asp:parameter>
    
    </DataFileParameters>
    
    	</SharePoint:SPXmlDataSource>
    
    
    
    

    xml文件的数据为

    <?xml version="1.0" encoding="utf-8"?>
    
    <siteMap xmlns="http://SiteMap" >
    
     <siteMapNode title="Home" url="/SitePages/Home.aspx" description="Portal主页">
    
     </siteMapNode>
    
     <siteMapNode title="File Server" url="/_layouts/RmsMgtSite/Pages/DirectoryMgt.aspx" description="File Server">
    
     <siteMapNode title="目录管理" url="/_layouts/RmsMgtSite/Pages/2.aspx" description="目录管理" />
    
     <siteMapNode title="服务管理" url="/_layouts/RmsMgtSite/Pages/3.aspx" description="服务管理" />
    
     </siteMapNode>
    
     <siteMapNode title="权限策略模板" url="/_layouts/RmsMgtSite/Pages/RightTemplateMgt.aspx" description="权限策略模板">
    
     <siteMapNode title="模板管理" url="/_layouts/RmsMgtSite/Pages/3.aspx" description="模板管理" />
    
     </siteMapNode>
    
     <siteMapNode title="工作流" url="/_layouts/RmsWorkflow/WorkflowList.aspx" description="工作流">
    
     <siteMapNode title="待办事项" url="/_layouts/RmsWorkflow/4.aspx" description="待办事项" />
    
     </siteMapNode>
    
     
    
    </siteMap>
    
    

    • 已编辑 MOSS无解 2011年6月2日 15:12 详细
    2011年6月2日 15:09

全部回复

  • 你好,

    YumMenuSelectedItem 这个css class导入进来没?


    Microsoft Online Community Support
    2011年6月3日 2:13
  • 导入了,在SPD中能跟踪进来,在sharepoint2010中是不是用了外部数据源(数据放在xml中)才失效的?因为页面本身自带的顶部导航用的是内部数据源,而且选中后的颜色是OK的。
    2011年6月3日 2:38
  • 你好,

    你能否把css直接写在StaticMenuItemStyle 中,如下面这种方式。

    e.g.

     <staticmenuitemstyle backcolor="LightSkyBlue"
         forecolor="Black"
         borderstyle="Solid"
         borderwidth="1"
         bordercolor="Black"/>
    

    Microsoft Online Community Support
    2011年6月3日 3:28
  • 试过了,没有效果。
    2011年6月3日 4:39