2012-08-10 38 views
0

我正在使用一个消耗web.sitemap文件的asp.menu的项目中工作。我添加了一个子菜单这样的:父节点和子节点没有在asp.menu中显示(使用web.sitemap)

<?xml version="1.0" encoding="utf-8" ?> 
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > 
    <siteMapNode url="formPaginaPrincipal.aspx" title="Página Inicial" description="Pagina inicial do site"> 
    <siteMapNode url="listaModalidades.aspx" title="Modalidades" description="Modalidades de licitações" /> 
    <siteMapNode url="" title="Relatórios" description="Relatórios do sistema"> 
     <siteMapNode url="list.aspx" title="testing"></siteMapNode> 
    </siteMapNode> 

    <siteMapNode url="listaTiposLicitacao.aspx" title="Tipos de Licitação" description="Tipos de licitações" /> 
    <siteMapNode url="listaOrgaos.aspx" title="Órgãos" description="Órgãos do governo de Pernambuco" /> 
    <siteMapNode url="listaComissoes.aspx" title="Comissões" description="Comissões de licitações" /> 
    <siteMapNode url="listaLicitacoes.aspx" title="Licitações" description="Licitações" /> 
    <siteMapNode url="ArquivarLicitacoes.aspx" title="Arquivar Licitações" description="Arquivamento de Licitações" /> 
    <siteMapNode url="listaEmpresas.aspx" title="Fornecedores" description="Fornecedores" /> 
    <siteMapNode url="listaUsuarios.aspx" title="Usuários" description="Usuários de Órgãos do governo de Pernambuco" /> 
    <siteMapNode url="formPaginaPrincipal.aspx?acao=sair" title="Sair" description="Encerrar Sessão" /> 
    </siteMapNode> 
</siteMap> 

如果切换在aspx文件显示模式,我可以看到父节点“Relatorios” ......但是当我运行该项目,它不根本不出现。我调试过这个项目,就像这个节点的itemdatabound事件(“Relatorios”)根本没有启动。如果我删除它的子节点(“测试”),它将正常工作。这是为什么发生?

我aspmenu和asp.sitemapdatasource在我的母版:

<asp:Menu ID="mnuPrincipal" runat="server" DataSourceID="SiteMapDataSource1" 
        StaticDisplayLevels="2" Width="208px" 
       onmenuitemclick="mnuPrincipal_MenuItemClick" 
       OnMenuItemDataBound="mnuPrincipal_temDataBound" DynamicHorizontalOffset="2" 
       StaticSubMenuIndent="40px" > 
       <StaticMenuStyle CssClass="menu" /> 
       <StaticSelectedStyle CssClass="selecionado" /> 
       <StaticMenuItemStyle CssClass="sub-menu" /> 
       <DynamicMenuStyle CssClass="menu" /> 
       <DynamicSelectedStyle CssClass="selecionado" /> 
       <DynamicMenuItemStyle CssClass="sub-menu" /> 
       </asp:Menu> 

<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" StartFromCurrentNode="false" /> 
+0

,因为它没有URL,它可能不会得到渲染 - 尝试把一个#为URL,看看它是否显示。 – 2012-08-10 13:15:23

+0

谢谢你!有效!但现在有一件事:它显示了IE8中的某种白盒子(我已经应用了css修复,但它不起作用),并且当我在chrome上运行它时,父节点显示出来但不是孩子节点... – 2012-08-10 13:47:17

+0

不用担心。不确定IE8的问题 - 听起来像一个CSS问题。你可能想开始一个新的问题并发布相关的CSS。 – 2012-08-10 13:54:40

回答

0

,你可以在你的配置声明你的网站地图

siteMap enabled="true"> 
    <providers> 
    <clear/> 
    <add siteMapFile="Web.sitemap" name="AspNetXmlSiteMapProvider" type="System.Web.XmlSiteMapProvider" securityTrimmingEnabled="true"/> 
    </providers> 
</siteMap> 
+0

它已经在web.config文件中声明。正如我所说的,奇怪的是:如果我检查设计模式下的aspx文件,我可以看到asp.menu(因为它在masterpage中),我可以看到我添加的父节点。但是当我运行该项目时,它根本不会出现在菜单中。它的menuitemdatabound事件不会触发以及... – 2012-08-10 13:00:37

相关问题