Si può eseguire il postback dell’intera pagina usando un pulsante in un UpdatePanel?

Utente HTML.it
chiede

Si può eseguire il postback dell’intera pagina usando un pulsante in un UpdatePanel?

Redazione HTML.it
risponde

Sì. Per impostazione predefinita, tutti i postback generati da oggetti posti all’interno di un UpdatePanel di AJAX causano il cosiddetto partial rendering, ovvero l’aggiornamento della sola parte di pagina contenuta nel suddetto pannello. Se, tuttavia, si vuole fare in modo che, ad esempio, uno dei pulsanti contenuti nell’UpdatePanel determini il postback dell’intera pagina, sì deve configurare la proprietà Triggers del controllo:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:Label runat="server" Text="Label" ID="Label1"></asp:Label>
        <asp:Button runat="server" Text="Aggiorna solo l'UpdatePanel" ID="btnAggiornaUpdatePanel"
            OnClick="btnAggiornaUpdatePanel_Click" />
        <asp:Button runat="server" Text="PostBack della pagina" ID="btnPostBack" OnClick="btnPostBack_Click" /></ContentTemplate>
    <Triggers>
        <asp:PostBackTrigger ControlID="btnPostBack" />
    </Triggers>
</asp:UpdatePanel>

All’interno del tag Triggers abbiamo specificato un elemento PostBackTrigger, impostando la sua proprietà ControlID su btnPostBack. Essa fa in modo che il pulsante btnPostBack, anche se è inserito nell’UpdatePanel, determini il postback dell’intera pagina. L’altro bottone, invece, come già accennato effettua l’aggiornamento solo del contenuto del pannello.