none
PageMethod dentro da MasterPage RRS feed

  • Pergunta

  • Olá Pessoal

    Tenho o seguinte código na MasterPage para efeito de testes antes de implementar o código correto.

       <script type="text/javascript">
    
           function MostrarMensagem() {
               PageMethods.TesteMensagem(ChamarMetodoSucesso, ChamarMetodoErro);
           }
    
            function CloseFrmWindow() {
                frmPrincipal.Hide();
            }
    
            function GridRefresh() {
                grdPrincipal.Refresh();
            }
    
             function ChamarMetodoSucesso(result, userContext, methodName) {
                 alert(result);
             }
    
             function ChamarMetodoErro(error, userContext, methodName) {
                 alert(error.get_message());
             }
        </script>

    Nesta MasterPage tb há um ScriptManager habilitado: EnablePageMethods="True"

    Há tb um WebMethod na MasterPage.

            [System.Web.Services.WebMethod]
            public static string TesteMensagem()
            {
       
                return "Deu certo na MasterPage!";
            }

    Porém quando mando executar através de uma página filha (derivada da masterpage ), não acontece nada. Se eu implementar o WebMethod na página filha, funciona. Como faço para que o PageMethods executado seja da MasterPage e não o da página filha?

    Já tentei:

            BasePage.PageMethods.TesteMensagem(ChamarMetodoSucesso, ChamarMetodoErro);
    
            MasterPage.PageMethods.TesteMensagem(ChamarMetodoSucesso, ChamarMetodoErro);

    Mas até agora, sem solução.

    Obrigado

    domingo, 29 de abril de 2012 12:59

Respostas

  • Olá Daniel

    Fiz um teste como você sugeriu, mas não funcionou. Eu quero é indicar no código JavaScript para ele executar o método dentro da MasterPage.

    Value pela ajuda.

    Reuber é provavel que talvez nas page filhas não está encontrando seus componantes, vc já fez esse teste?

    ex

      function GridRefresh() {
                grdPrincipal.Refresh();
            }


    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC


    quarta-feira, 2 de maio de 2012 12:19
    Moderador

Todas as Respostas

  • Ola Reuber,

    Tente algo do tipo

                NomeDaSuaMasterPage MyMasterPage = (NomeDaSuaMasterPage)Page.Master;
                MyMasterPage.TesteMensagem();

    Um link antigo mas interessante é o Master Pages: Tips, Tricks, and Traps (http://odetocode.com/Articles/450.aspx)

    Abracos, Daniel.


    -- Se minha sugestão ajudou, por favor marque-a como útil; Se resolveu a questão, por favor marque-a como resposta. Contribua para melhorar o fórum! | daniel@dimamura.com.br

    segunda-feira, 30 de abril de 2012 01:55
  • Olá Daniel

    Fiz um teste como você sugeriu, mas não funcionou. Eu quero é indicar no código JavaScript para ele executar o método dentro da MasterPage.

    Value pela ajuda.

    segunda-feira, 30 de abril de 2012 14:28
  • Olá Daniel

    Fiz um teste como você sugeriu, mas não funcionou. Eu quero é indicar no código JavaScript para ele executar o método dentro da MasterPage.

    Value pela ajuda.

    Reuber é provavel que talvez nas page filhas não está encontrando seus componantes, vc já fez esse teste?

    ex

      function GridRefresh() {
                grdPrincipal.Refresh();
            }


    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC


    quarta-feira, 2 de maio de 2012 12:19
    Moderador