Como faço para forçar o postback completo de um botão dentro de um UpdatePanel?

Como faço para forçar o postback completo de um botão dentro de um UpdatePanel?

Você pode usar a propriedade Triggers do UpdatePanel para registrar ações que triggersm um postback completo.

Adicione um object PostBackTrigger a essa propriedade, contendo o ControlID do controle que precisa triggersr um postback completo.

  ...      

Apenas adicionando isso porque mais ninguém tem. É possível fazer isso em code-behind em uma linha de código sem nenhum dos methods acima. Basta colocar isso em page_load:

Visual básico

 ScriptManager.GetCurrent(Me).RegisterPostBackControl(myButtonID) 

C #

 ScriptManager.GetCurrent(this).RegisterPostBackControl(myButtonID); 

A partir daqui :

Use o controle PostBackTrigger para permitir que controles dentro de um UpdatePanel causem um postback em vez de executar um postback asynchronous.

     

Eu tive o mesmo problema usando um ImageButton dentro de um WebDataGrid.

Eu coloquei o Line do EvilDr dentro do preRender para o webdatagrid. Funcionou muito bem!

 for (int i = 0; i < wdgMyData.Rows.Count; i++) { ScriptManager.GetCurrent(this).RegisterPostBackControl((ImageButton)wdgMyData.Rows[i].Items[3].FindControl("btnDownloadExcel")); } 

É uma pergunta antiga também, quando tudo está em painéis de atualização e você quer fazer postback completo para que seu código Document.Ready funcione em um clique.

1. Crie um botão fictício fora do painel de atualização e clique nele a partir do código como este

 ScriptManager.RegisterStartupScript(Page, this.GetType(), "ResetDoc", "ResetDocumentReady();", true); 

2. Defina a function no front end assim

 function ResetDocumentReady() { $("[id$=DummyButton]").click(); } 

NOTA: Mas a melhor maneira é usar trigger, a resposta postada pelo @Thibault Falise 🙂