Estou tentando criar uma postagem assíncrona no ASP.NET usando __doPostBack()
, mas não tenho idéia de como fazê-lo. Eu quero usar JavaScript baunilha.
Algo simples como um clique no botão pode causar o __doPostBack()
disparo do evento. Eu só estou tentando aprender como o mecanismo funciona.
c#
javascript
asp.net
postback
Michael Kerute
fonte
fonte
__doPostBack
não é realmente suportada. Se sua página não possui nada que desencadeie uma postagem, o asp.net pode omitir a definição da__doPostBack
função. A abordagem suportada é chamarClientScriptManager.GetPostBackEventReference
, que retorna uma sequência no formulário__doPostBack(...)
e garante que ela__doPostBack
esteja definida.Respostas:
Você pode tentar isso em seu formulário da web com um botão chamado btnSave, por exemplo:
E no seu código por trás, adicione algo assim para ler o valor e operar com ele:
Experimente e informe-nos se isso funcionou para você.
fonte
Essa também é uma boa maneira de fazer com que os controles do servidor sejam postados dentro da FancyBox e / ou do jQuery Dialog . Por exemplo, em FancyBox-div:
JavaScript:
Page_Load do servidor:
fonte
ClientIDMode="Static"
atributo deMyButton
, para que o ASP não altere a identificação do botão.Aqui está um breve tutorial sobre como
__doPostBack()
funciona.Para ser sincero, não uso muito; pelo menos diretamente. Muitos controles de servidor, (por exemplo,
Button
,LinkButton
,ImageButton
, partes doGridView
, etc.) uso__doPostBack
como mecanismo posto de volta.fonte
Gostaria de adicionar algo a este post para
asp:button
. Eu tentei o clientId e não parece funcionar para mim:No entanto, a obtenção do UniqueId parece ser postada novamente no servidor, como abaixo:
Isso pode ajudar alguém no futuro, portanto, publicando isso.
fonte
ClientID
, porque estava usandoClientIDMode = Static
. UsandoUniqueID
trabalhou.Pergunta antiga, mas eu gostaria de acrescentar algo: ao chamar,
doPostBack()
você pode usar o método manipulador de servidor para a ação.Por exemplo:
Disparará, no servidor:
Não encontrei uma maneira melhor de obter o argumento, então ainda estou usando
Request["__EVENTARGUMENT"]
.fonte
Como outros já disseram, você precisa fornecer o UniqueID do controle para o método __doPostback ().
No servidor, os valores do formulário enviados são identificados pelo atributo name dos campos na página.
O motivo pelo qual o UniqueID funciona é porque o UniqueID e o nome são de fato a mesma coisa quando o controle do servidor é renderizado em HTML.
Aqui está um artigo que descreve o que é o UniqueID:
fonte
É assim que eu faço
fonte