Usuário com melhor resposta
Registrar javascript após postback, para não perder o evento JS.

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.
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
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
-