COMO SETAR FOCO EM OBJETO DEPOIS DE POSTBACK?
Olá pessoal!!
[Ô]Garrô[Ô]!! Não consigo sair do lugar. Ao realizar o postback, os objetos perdem o foco.
Como faço para setar o foco no objeto que tinha o foco antes do postback????
[Ô]Garrô[Ô]!! Não consigo sair do lugar. Ao realizar o postback, os objetos perdem o foco.
Como faço para setar o foco no objeto que tinha o foco antes do postback????
Já tentou usar um UpdatePanel pra uma chamada assÃncrona?
Porque guardar a uma variável no ViewState ... pra depois do postback executar um código javascript pra mandar o foco... acho meio gambiarra isso daÃ.
Outra sugestão é não usar o UpdatePanel e fazer as requisições assÃncronas ajax usando JQuery.
Abraços!
Porque guardar a uma variável no ViewState ... pra depois do postback executar um código javascript pra mandar o foco... acho meio gambiarra isso daÃ.
Outra sugestão é não usar o UpdatePanel e fazer as requisições assÃncronas ajax usando JQuery.
Abraços!
Casualmente, fiz um vÃdeo hoje que vem de encontro justamente ao que você quer. O código fonte está na descrição do vÃdeo.
Primeiro, obrigado aos dois pela atenção.
Usei sim um Update Panel mas não resolveu. No meu formulário, há a necessidade de localizar um endereço usando uma api do google maps. O código é ativado no Page_Load assim que a pessoa digita rua ou número. Coloquei o update panel para atualizar somente a div do mapa, mas não resolveu. Enquanto o código busca o resultado no mapa a pessoa continua digitando e quando o mapa é atualizado, o foco se perde forçando a pessoa a setar o foco manualmente e isso é muito chato.
Sobre ajax, não sei como fazer.
Grande KERPLUNK, o seu vÃdeo é privado e eu não consegui assistir.
Pensei em abrir uma session e colocar o objeto em foco para depois recuperá-lo, mas a questão é saber qual campo estava em foco no momento em que o mapa se atualizou. Não tenho idéia de como fazer isso.
Usei sim um Update Panel mas não resolveu. No meu formulário, há a necessidade de localizar um endereço usando uma api do google maps. O código é ativado no Page_Load assim que a pessoa digita rua ou número. Coloquei o update panel para atualizar somente a div do mapa, mas não resolveu. Enquanto o código busca o resultado no mapa a pessoa continua digitando e quando o mapa é atualizado, o foco se perde forçando a pessoa a setar o foco manualmente e isso é muito chato.
Sobre ajax, não sei como fazer.
Grande KERPLUNK, o seu vÃdeo é privado e eu não consegui assistir.
Pensei em abrir uma session e colocar o objeto em foco para depois recuperá-lo, mas a questão é saber qual campo estava em foco no momento em que o mapa se atualizou. Não tenho idéia de como fazer isso.
Desculpe, tive que tornar o vÃdeo privado porque estava aparecendo dados pessoais, que não gostaria de tornar públicos... Vou editar e subo uma nova versão ainda hoje.
Cara!! Luciano Hulk, Fastão, Bial... que se cuidem. Que apresentação objetiva e clara. PARABéNS!!!
Acho que seu vÃdeo resolve meu problema. Vou fazer as alterações no meu código e ver o que acontece, mas não vou fechar o tópico ainda. Se surgir alguma dúvida peço socorro.
Mais uma vez PARABéNS e obrigado.
Acho que seu vÃdeo resolve meu problema. Vou fazer as alterações no meu código e ver o que acontece, mas não vou fechar o tópico ainda. Se surgir alguma dúvida peço socorro.
Mais uma vez PARABéNS e obrigado.
Kerplunk, encontrei o primeiro entrave. Programo no Asp.net VB e no meu form não tem nada de html. O código ajax precisa ser chamado no [Ô]_TextChanged[Ô] de diversos textbox. Como faço isso sem acionar o postback??
ASP.NET é HTML...
Bem, veja bem o seu código. Vai ter algo como:
O que você vai fazer é:
Outro detalhe a se ter atenção. Na rotina javascript do exemplo, uso o JQuery para buscar e colocar valores em textbox. Elas rodam no client e o ID delas é aquilo que eu coloco no ID mesmo. Com as Textbox do ASP.NET, os id[ô]s delas mudam na compilação para um id diferente e você precisa de uma maneira diferente para se referir à elas com o JQuery. Mas não se assuste, não é nada de outro mundo não, fica algo assim:
Repare que as únicas diferenças, são nas linhas onde busco e coloco valores nas textbox, que ao invés de um simples ID, abro uma tag [Ô]server[Ô] do asp e busco o ClientID da textbox ASP.NET. Como já disse, o ASP.NET muda os nomes das ID[ô]s dos componentes e o único jeito de buscar os nomes certinhos é usando a propriedade ClientID do componente, que é uma propriedade [Ô]server[Ô] por isso abro a tag server que é [Ô]<% %>[Ô] para pegar o nome gerado e assim não tem erro.
Bem, veja bem o seu código. Vai ter algo como:
<asp:Textbox id=[Ô]txtBlablabla[Ô] runat=[Ô]server[Ô] ><asp:Textbox>
O que você vai fazer é:
<asp:TextBox id=[Ô]txtBlablabla[Ô] runat=[Ô]server[Ô] onchange=[Ô]javascript: SuaFunctionJavaScript(this);[Ô] />
Outro detalhe a se ter atenção. Na rotina javascript do exemplo, uso o JQuery para buscar e colocar valores em textbox. Elas rodam no client e o ID delas é aquilo que eu coloco no ID mesmo. Com as Textbox do ASP.NET, os id[ô]s delas mudam na compilação para um id diferente e você precisa de uma maneira diferente para se referir à elas com o JQuery. Mas não se assuste, não é nada de outro mundo não, fica algo assim:
<script>
function Buscar()
{
$.ajax({
type: [Ô]POST[Ô],
url: [Ô]Default.aspx/BuscaCliente[Ô],
data: [Ô]{Codigo: [ô][Ô] + $([Ô]#<%= txtCodigo.ClientID %>[Ô]).val() + [Ô][ô]}[Ô],
contentType: [Ô]application/json; charset=utf-8[Ô],
dataType: [Ô]json[Ô],
success: function (resposta) {
$([Ô]#<%= txtDescricao.ClientID %>[Ô]).val(resposta.d);
}
})
}
</script>
Repare que as únicas diferenças, são nas linhas onde busco e coloco valores nas textbox, que ao invés de um simples ID, abro uma tag [Ô]server[Ô] do asp e busco o ClientID da textbox ASP.NET. Como já disse, o ASP.NET muda os nomes das ID[ô]s dos componentes e o único jeito de buscar os nomes certinhos é usando a propriedade ClientID do componente, que é uma propriedade [Ô]server[Ô] por isso abro a tag server que é [Ô]<% %>[Ô] para pegar o nome gerado e assim não tem erro.
KERPLUNK meu querido!! Que DEUS abençoe sua generosidade. FUNCIONOU PERFEITAMENTE!! MUITO OBRIGADO!!!!
Eu achei que precisava inserir componentes html propriamente dito, mas sua explicação FOI PERFEITA!!
VALEU!!!
Eu achei que precisava inserir componentes html propriamente dito, mas sua explicação FOI PERFEITA!!
VALEU!!!
Tópico encerrado , respostas não são mais permitidas