none
Exibição de menu filho após gerar GridView RRS feed

  • Pergunta

  • Oi pessoal,

    Estou desenvolvendo um projeto WebForms C# com várias telas acessíveis por um menu superior. Em algumas das telas são gerados gridview para exibição de dados vindo diretamente do banco. A questão é que toda vez que as grids são carregadas os menu filho não ficam visíveis, ficam com 'display: none' por padrão. Já procurei na net como resolver, mas não encontrei nada semelhante ao meu caso. 

    Alguém poderia me dar um norte por favor ??



    - - - - - - - - Aline Fidelis web designer

    segunda-feira, 19 de agosto de 2013 21:17

Respostas

  • Encontrei uma solução: 

    Acrescentei uma chamada ajax antes do conteudo da página que utiliza a gridView. 

    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

    Removi o UppdatePanel presente na página e coloquei o gridView dentro de um panel. 

    <asp:Panel runat="server" ID="panel">
       <asp:GridView ID="grdBuscaPac" runat="server" AutoGenerateColumns="True" AllowPaging="True" DataSourceID="OdsBuscaPaciente"  AllowSorting="True" ></asp:GridView>
    </asp:Panel>

    Pronto! Resolvido a questão; :) 


    - - - - - - - - Aline Fidelis web designer

    • Marcado como Resposta Aline Fidelis terça-feira, 20 de agosto de 2013 19:54
    terça-feira, 20 de agosto de 2013 19:54

Todas as Respostas

  • Oi, o que exatamente vc quer fazer?

    Post o código pra simplificar o entendimento.

    Abraço.


    • Editado Romy Moura segunda-feira, 19 de agosto de 2013 21:41
    segunda-feira, 19 de agosto de 2013 21:21
  • Oi Romy, 

    Gostaria de saber como remover a definição padrão de estilo do segundo nível do menu após o carregamento da gridview. 

    Aqui está a definição da grid. 

    <asp:ObjectDataSource runat="server" ID="OdsListarPaciente" TypeName="Projeto.Classes" SelectMethod="ListarPacientes">
       <SelectParameters>
          <asp:ControlParameter ControlID="DdlOperadora" PropertyName="Text" Type="Int32" Name="codigoOperadora" />
          <asp:ControlParameter ControlID="DdlPrograma" PropertyName="Text" Type="Int32" Name="codigoPrograma" />
          <asp:ControlParameter ControlID="txtPac" PropertyName="Text" Type="String" Name="nomePaciente" />
       </SelectParameters>
    </asp:ObjectDataSource>
    
    <asp:GridView ID="grdBuscaPac"  runat="server" DataSourceID="OdsListarPaciente" AutoGenerateColumns="true" AllowPaging="True" AllowSorting="True"></asp:GridView>

    Quando a tela é carregada o menu filho é interpretado assim pelo browser. 

    <li class="has-poup static" aria-haspopup="LoginView1_NavigationMenu:submenu:3" role="menuitem" style="; float: left;">
       <a title="cadastro" class="popout level1 static" tabindex="-1">cadastro</a>
       <ul class="level2 dynamic" id="LoginView1_NavigationMenu:submenu:3" style="display: block; ; top: 100%; left: 0px;">
          <li role="menuitem" class="dynamic" style=";">
             <a title="cadastroPrograma" class="level2 dynamic" href="BuscaPrograma.aspx" tabindex="-1">Cadastro de Programa</a>
          </li>
       </ul>
    </li>

    Quando a grid é carregada o browser interpreta o mesmo trecho acima assim: 

    <li class="has-poup static" aria-haspopup="LoginView1_NavigationMenu:submenu:3" role="menuitem" style="; float: left;">
       <a title="cadastro" class="popout level1 static" tabindex="-1">cadastro</a>
       <ul class="level2 dynamic" id="LoginView1_NavigationMenu:submenu:3" style="display: none; ; top: 100%; left: 0px;">
          <li role="menuitem" class="dynamic" style=";">
             <a title="cadastroPrograma" class="level2 dynamic" href="BuscaPrograma.aspx" tabindex="-1">Cadastro de Programa</a>
          </li>
       </ul>
    </li>

    Foi definido 'display: none' e não consigo fazer alteração. 

    O menu desse projeto é definido assim: 

    <asp:Menu ID="NavigationMenu" CssClass="menu" runat="server" EnableViewState="False" IncludeStyleBlock="False" Orientation="Horizontal" DataSourceID="SiteMapDataSource1" ondatabound="Menu1_DataBound" onmenuitemdatabound="Menu1_MenuItemDataBound"></asp:Menu>
    Agradeço a atenção!


    - - - - - - - - Aline Fidelis web designer

    terça-feira, 20 de agosto de 2013 13:38
  • Encontrei uma solução: 

    Acrescentei uma chamada ajax antes do conteudo da página que utiliza a gridView. 

    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

    Removi o UppdatePanel presente na página e coloquei o gridView dentro de um panel. 

    <asp:Panel runat="server" ID="panel">
       <asp:GridView ID="grdBuscaPac" runat="server" AutoGenerateColumns="True" AllowPaging="True" DataSourceID="OdsBuscaPaciente"  AllowSorting="True" ></asp:GridView>
    </asp:Panel>

    Pronto! Resolvido a questão; :) 


    - - - - - - - - Aline Fidelis web designer

    • Marcado como Resposta Aline Fidelis terça-feira, 20 de agosto de 2013 19:54
    terça-feira, 20 de agosto de 2013 19:54