por Saulo G. Pacífico

Update Progress no ASP.NET

Créditos: Saulo Giori Pacífico.
Twitter - twitter.com/saulopacifico - @saulopacifico
Facebook - facebook.com/SauloPacifico

 Download do projeto completo

Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Update_Panel.Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>Minha página</title>
</head>
<body>
    <form id="form1" runat="server">
    <%-- Dentro da tag "form" que a página aspx já traz nativamente,
    adicionamos o componente da nossa aba AJAX Extensions, o Script Manager.
    Ele é obrigatório para o uso de qualquer outro componente da aba e
    para o uso do Ajax Control Toolkit (Nesse caso podemos usar também
    o Toolkit Script Manager) --%>
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <div>
        <%--Insiro um Update Panel (procure na aba AJAX Extensions)  --%>
        <asp:UpdatePanel runat="server" ID="upProcessamento" UpdateMode="Conditional">
            <ContentTemplate>
                <%-- A área a ser processada, deve ser inserida dentro do Content Template --%>
                <p>Clique no botão abaixo para processar alguma coisa:</p>
                <%--Um botão com o evento Click já programado --%>
                <asp:Button Text="Processar" runat="server" ID="btnProcessamento" OnClick="btnProcessamento_Click" />
            </ContentTemplate>
            <Triggers>
                <%--Dentro dessa tag ela reconhece como um postback assíncrono, passo o mesmo 
                Id do botão dentro de ControlID e o EventName como Click -->
                Para outros componentes é só trocar o ControlID e o EventName pelos
                respectivos IDs e Eventos de outros controles--%>
                <asp:AsyncPostBackTrigger ControlID="btnProcessamento" EventName="Click" />
            </Triggers>
        </asp:UpdatePanel>
        <%--Este componente que é o responsável por dar ideia de processamento ao usuário
        mediante uma requisição do mesmo --%>
        <asp:UpdateProgress runat="server">
            <ProgressTemplate>
                <%--Este é o componente responsável pelo gif de processamento ou qualquer
                outro conteúdo que eu queira exibir --%>
                Processando... Você será redirecionado em 5 segundos
                <img src="imagens/loading.gif" alt="Carregando" />
            </ProgressTemplate>
        </asp:UpdateProgress>
    </div>
    </form>
</body>
</html>

 Default.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Update_Panel
{
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void btnProcessamento_Click(object sender, EventArgs e)
        {
            //Implemento todo o clique do botão
            //Paraliso a página por 5 segundos
            System.Threading.Thread.Sleep(5000);
            //Redireciono para outra página
            Response.Redirect("Pagina_2.aspx");
        }
    }
}

Comentários

Carregando comentários

Postar um novo comentário



Processando...