¿Cómo fuerzo el post-back completo desde un botón dentro de un UpdatePanel?


¿Cómo fuerzo el post-back completo desde un botón dentro de un UpdatePanel?

Author: gunr2171, 2010-03-30

5 answers

Puede usar la propiedad Triggers del UpdatePanel para registrar acciones que desencadenan un postback completo.

Agregue un objeto PostBackTrigger a esa propiedad, conteniendo el ControlID del control que necesita activar un postback completo.

<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
    <ContentTemplate>
        ...
    </ContentTemplate>
    <Triggers>
        <asp:PostBackTrigger ControlID="myFullPostBackControlID" />
    </Triggers>
</asp:UpdatePanel>
 81
Author: Thibault Falise,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-30 13:30:36

Simplemente agregando esto porque nadie más lo ha hecho. Es posible hacer esto en code-behind en una línea de código sin ninguno de los métodos anteriores. Simplemente pon esto en page_load:

Visual Basic

ScriptManager.GetCurrent(Me).RegisterPostBackControl(myButtonID)

C #

ScriptManager.GetCurrent(this).RegisterPostBackControl(myButtonID);
 44
Author: EvilDr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-07 18:00:08

De aquí:

Use el control PostBackTrigger para habilitar los controles dentro de un UpdatePanel para causar un postback en lugar de realizar un postback asincrónico.

 <Triggers>
    <asp:PostBackTrigger ControlID="controlID" />
 </Triggers>
 12
Author: Aseem Gautam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-30 13:33:04

Tuve el mismo problema usando un ImageButton dentro de un WebDataGrid.

Puse la línea de EvilDr dentro del preRender para el webdatagrid en su lugar. Funcionó muy bien!

for (int i = 0; i < wdgMyData.Rows.Count; i++)
{
   ScriptManager.GetCurrent(this).RegisterPostBackControl((ImageButton)wdgMyData.Rows[i].Items[3].FindControl("btnDownloadExcel"));
}
 0
Author: Oystein,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-26 22:17:40

Es una vieja pregunta, hay un enfoque un poco complicado también, cuando todo está en paneles de actualización y desea hacer un post completo para que su Documento.Ready el código funciona al hacer clic.

1. Cree un botón ficticio fuera del panel de actualización y haga clic en él desde el código detrás de esta manera

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

2. Defina la función en el front end de esta manera

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

NOTA: Pero la mejor manera es usar trigger, la respuesta publicada por @ Thibault Falise :)

 0
Author: Ajmal Jamil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-09 08:14:28