net - postback c# example




Como usar__doPostBack() (4)

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.


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.


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





postback