none
网站导航菜单只能在IE兼容模式下正确显示,其他模式则消失的问题! RRS feed

  • 问题

  •     我用Asp.net自带的web.sitemap 做了一个网站导航,和母版页配合使用,可是在非兼容模式下,网站导航的下拉菜单会不显示。请看图1中上(兼容模式)、下(非兼容模式)两个下拉菜单的区别!

        问题1:网站导航下拉菜单消失的问题该怎么解决呢?

        问题2:在解决了问题1的基础上,我想把导航下拉菜单横着排开,就像普通的IE浏览器那样,要怎么做呢?

        下面是图和两段代码

    ------------------------图1--------------------------

    ---------------------------web.sitemap---------------------

    <?xml version="1.0" encoding="utf-8" ?>
    <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
      <siteMapNode url="" title="长铁物业公司资产合同管理系统"  description="根目录">
    
        <siteMapNode url="" title="用户管理"  description="UsersTable">
          <siteMapNode url="~/UsersTable/UserAdd.aspx" title="用户注册"  description="UserAdd.aspx" />
          <siteMapNode url="~/UsersTable/UserManager.aspx" title="用户信息查询"  description="UserManage.aspx" />
        </siteMapNode>
    
        <siteMapNode url="" title="资产管理"  description="PropertyTable">
          <siteMapNode url="~/PropertyTable/PropertyAdd.aspx" title="新建资产信息"  description="PropertyAdd.aspx" />
          <siteMapNode url="~/PropertyTable/PropertyManage.aspx" title="资产信息查询及修改"  description="PropertyManage.aspx" />
          
        </siteMapNode>
      </siteMapNode>
    
      </siteMapNode>
    </siteMap>

    ------------------------------母版页-------------------------

    <%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
        <asp:ContentPlaceHolder id="head" runat="server">
        </asp:ContentPlaceHolder>
        <style type="text/css">
            .style1
            {
                width: 100%;
            }
        </style>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        
            <table  border="0" style="height: 75px; width: 100%;"><%--边框的厚度,注意引号--%>
            
            
                <tr>
                   <td>
                    <%--首先要设计网站的.sitemap文件(站点地图文件),再用以下的控件来实现界面中的样式--%>
                    <%--三种网站导航控件:SiteMapPath-全部列出来,其中RenderCurrenNodeAsLink属性指示当前节点是否呈现为节点:True
                    ;TreeView和SiteMapTath类似--%>
                    <%--以上三种控件的数据源都是SiteMapDataSource--%>
                        <%--此处使用Menu-可以展开的控件--%>
                        <strong >
                        <span style="font-size:10pt;font-family:Tanoma"><%--点击span,在属性Style后面可直接选择--%>
                        <asp:Menu ID="Menu1" runat="server" Width="100%" 
                           DataSourceID="SiteMapDataSource1"  
                           BackColor="#FFFBD6" DynamicHorizontalOffset="2" Font-Names="Verdana" 
                           Font-Overline="False" Font-Size="0.9em" ForeColor="#990000" Height="32px" 
                           Orientation="Horizontal" StaticSubMenuIndent="10px" >
                           <%--静态、动态选项风格,在“样式”里--%>
                            <StaticSelectedStyle BackColor="#FFCC66" />
                            <StaticMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" />
                            <DynamicHoverStyle BackColor="#990000" ForeColor="White" />
                            <DynamicMenuStyle BackColor="#FFFBD6" />
                            <DynamicSelectedStyle BackColor="#FFCC66" />
                            <DynamicMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" />
                            
                            <DataBindings>
                                <asp:MenuItemBinding DataMember="SiteMapNode" NavigateUrlField="Url" 
                                    TextField="Title" />
                            </DataBindings>
                            <DynamicHoverStyle BackColor="#666666" ForeColor="White" />
                            <StaticHoverStyle BackColor="#990000" ForeColor="White" />
                        </asp:Menu>
                        
                        
                        <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
                       <asp:SiteMapPath ID="SiteMapPath1" runat="server" Font-Names="Verdana" 
                           Font-Size="0.8em" PathSeparator=" : ">
                           <PathSeparatorStyle Font-Bold="True" ForeColor="#990000" />
                           <CurrentNodeStyle ForeColor="#333333" />
                           <NodeStyle Font-Bold="True" ForeColor="#990000" />
                           <RootNodeStyle Font-Bold="True" ForeColor="#FF8000" />
                       </asp:SiteMapPath>
                        
                        </span>
                        </strong>
                    
                    </td>
                </tr>
                <%--以下是内容页,母版页之外的可编辑区域--%>
             <tr>         <td>
            <asp:ContentPlaceHolder id="ContentPlaceHolder2" runat="server">
            <span style ="font-size: 10px; font-family: Tahoma;" ></span>
            </asp:ContentPlaceHolder>
            </td>        </tr>
            </table>
            <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
            
            </asp:ContentPlaceHolder>
        </div>
        </form>
    </body>
    </html>


    C# 菜鸟中的雏鸟!提的问题也许很幼稚,但我是认真的。希望看在党国的面子上拉兄弟一把!


    2013年7月24日 3:44

答案

全部回复

  • 问题1:

    你可以在你的页面中加入类似于下面的代码,对浏览器的模式进行兼容

    <meta http-equiv="X-UA-Compatible" content="IE=7" />兼容IE7
    
     <meta http-equiv="X-UA-Compatible" content="IE=8" />兼容IE8 


    问题2:

    对于Meun的使用,有一个Orientation 属性,你可以设置这个属性的显示方向

    例如

    Menu.Orientation = Orientation.Vertical;

    你可以多看些关于menu的信息:

    http://msdn.microsoft.com/zh-cn/library/ecs0x9w5(v=vs.80).aspx
    希望能够帮助到你

    2013年7月29日 3:01
    版主
  • 谢谢!问题已解决,不过这个兼容性的问题确实烦人!

    C# 菜鸟中的雏鸟!提的问题也许很幼稚,但我是认真的。希望看在党国的面子上拉兄弟一把!

    2013年7月29日 3:24