net - postback c# example
Como usar__doPostBack() (4)
Aqui está um breve tutorial sobre como o __doPostBack()
funciona.
Para ser sincero, não uso muito; pelo menos diretamente. Muitos controles de servidor (por exemplo, Button
, LinkButton
, ImageButton
, partes do GridView
, etc.) usam __doPostBack
como seu mecanismo de postagem posterior.
Eu estou tentando criar um postback assíncrono no asp.net usando __doPostBack()
, mas não tenho idéia de como fazê-lo. Eu quero usar JavaScript vanilla.
Algo simples como um clique de botão pode fazer com que o evento __doPostBack()
. Eu estou apenas tentando aprender como o mecanismo funciona.
Como outros disseram, você precisa fornecer o UniqueID do controle para o método __doPostback ().
__doPostBack('<%= btn.UniqueID %>', '');
No servidor, os valores do formulário enviados são identificados pelo atributo name dos campos da página.
A razão pela qual o UniqueID funciona é porque UniqueID e name são na verdade a mesma coisa quando o controle do servidor é renderizado em HTML.
Aqui está um artigo que descreve o que é o UniqueID:
A propriedade UniqueID também é usada para fornecer valor para o atributo "nome" de campos de entrada (caixas de seleção, listas suspensas e campos ocultos). UniqueID também desempenha papel importante em postbacks. A propriedade UniqueID de um controle de servidor, que suporta postbacks, fornece dados para o campo oculto __EVENTTARGET. O tempo de execução do ASP.NET, em seguida, usa o campo __EVENTTARGET para localizar o controle que acionou o postback e, em seguida, chama seu método RaisePostBackEvent.
src: https://www.telerik.com/blogs/the-difference-between-id-clientid-and-uniqueid
Gostaria apenas de acrescentar algo a este post para o asp:button
Eu tentei clientId e parece não funcionar para mim:
__doPostBack('<%= btn.ClientID%>', '');
No entanto, recebendo o UniqueId parece postar de volta para o servidor, como abaixo:
__doPostBack('<%= btn.UniqueID%>', '');
Isso pode ajudar alguém no futuro, postando isso.
Pergunta antiga, mas gostaria de acrescentar algo: ao chamar doPostBack()
você pode usar o método manipulador de servidor para a ação.
Por exemplo:
__doPostBack('<%= btn.UniqueID%>', 'my args');
Vai disparar, no servidor:
protected void btn_Click(object sender, EventArgs e)
Não encontrei uma maneira melhor de obter o argumento, por isso ainda estou usando o Request["__EVENTARGUMENT"]
.