none
Registrar javascript após postback, para não perder o evento JS. RRS feed

  • Pergunta

  • Ola!

    Tenho uma aplicação no VS2003 e agora migrando pro VS2010 estou descobrindo alguns "detalhes" que até então não era preciso.

    Vamos la, numa tela com vários textbox alguns tem postback, nesses após executar o postback eles perdem o evento javascript usando ou não UpDatePanel(ajax), andei pesquisando mas não achei nada que me clareasse as idéias mas parece que é preciso registrar esses eventos na página, abaixo segue algumas propriedades e caso seja isso qual seria um exemplo de como usa-las corretamente.

    ScriptManager.RegisterStartupScript
    ClientScript.RegisterStartupScript

    Exemplo do evento javascript:
    TextBox1.Attributes.Add("onKeypress", "javascript:TabProximo(""TextBox2"",0,0)")
    TextBox2.Attributes.Add("onKeypress", "javascript:TabProximo(""TextBox3"",0,0)")
    TextBox3.................
    Este código acima faz a tabulação por enter, e quando um deles tiver postback ele perde o evento.

    terça-feira, 7 de janeiro de 2014 12:13

Respostas

  • Vamos la amigo..

    Para usar com o ClientScript.RegisterStartupScript ,  acredito que você vai ter que registrar seus script novamente a cada postback, pois como o seu script é gerado dinamicamente e a cada postback a pagina é reenviada no navegador você ira perder o script registrado.

    Já tive este mesmo problema, resolvi da seguinte maneira:

       declarei meu  javascript na tag, <script></script> dentro da tag <head></head> do HTML,  capturei o evento onkeypress via jquery usando o seguinte  codigo dentro da function pageLoad() exemplo :

    <html> <head> <script type="text/javascript"> function pageLoad(){ $(document).ready(function(){

    $('#id_controle').keypress(function(){

    //Codigo desejado.

    });

    }); } </script> </head> <body> </body> </html>


    Espero ter ajudado amigo...




    • Editado Gabriel S Mylla terça-feira, 7 de janeiro de 2014 16:32
    • Sugerido como Resposta Vitor Mendes terça-feira, 7 de janeiro de 2014 23:18
    • Marcado como Resposta Benhur quarta-feira, 8 de janeiro de 2014 11:03
    terça-feira, 7 de janeiro de 2014 15:52

Todas as Respostas

  • Vamos la amigo..

    Para usar com o ClientScript.RegisterStartupScript ,  acredito que você vai ter que registrar seus script novamente a cada postback, pois como o seu script é gerado dinamicamente e a cada postback a pagina é reenviada no navegador você ira perder o script registrado.

    Já tive este mesmo problema, resolvi da seguinte maneira:

       declarei meu  javascript na tag, <script></script> dentro da tag <head></head> do HTML,  capturei o evento onkeypress via jquery usando o seguinte  codigo dentro da function pageLoad() exemplo :

    <html> <head> <script type="text/javascript"> function pageLoad(){ $(document).ready(function(){

    $('#id_controle').keypress(function(){

    //Codigo desejado.

    });

    }); } </script> </head> <body> </body> </html>


    Espero ter ajudado amigo...




    • Editado Gabriel S Mylla terça-feira, 7 de janeiro de 2014 16:32
    • Sugerido como Resposta Vitor Mendes terça-feira, 7 de janeiro de 2014 23:18
    • Marcado como Resposta Benhur quarta-feira, 8 de janeiro de 2014 11:03
    terça-feira, 7 de janeiro de 2014 15:52
  • Apesar de ainda não ter conseguido resolver a situação obrigado pela ajuda,
    Estou apanhando um pouco, mas logo resolvo.
    Valeu.

    quarta-feira, 8 de janeiro de 2014 11:02