COMO SETAR FOCO EM OBJETO DEPOIS DE POSTBACK?

MLALEX 15/02/2016 20:20:12
#457679
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????
DS2T 15/02/2016 20:31:06
#457681
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!
KERPLUNK 15/02/2016 23:18:46
#457691
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.
MLALEX 16/02/2016 10:22:44
#457705
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.
KERPLUNK 16/02/2016 16:59:18
#457727
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.
KERPLUNK 16/02/2016 20:16:57
#457734
Conforme prometido, o vídeo sobre o assunto que você quer
MLALEX 17/02/2016 10:39:11
#457767
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.
MLALEX 17/02/2016 11:04:51
#457768
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??
KERPLUNK 17/02/2016 17:07:47
#457797
Resposta escolhida
ASP.NET é HTML...
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.
MLALEX 18/02/2016 11:32:41
#457840
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!!!
Tópico encerrado , respostas não são mais permitidas