Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/07/2008, 14:51
dschell
 
Fecha de Ingreso: junio-2003
Ubicación: Carlos Paz - Cordoba
Mensajes: 91
Antigüedad: 20 años, 10 meses
Puntos: 0
mostrar un contador de segundos transcurridos

Hola gente estuve buscando como loco pero no encontré esto:

Necesito que al clickar un boton que invoca un store procedure muy lento (digamos 10 minutos) se muestre en un label "Tiempo transcurrido: n minutos" o sea que se actualice cada 60 segundos

pagina.aspx

Código:
<ajax:ScriptManager ID="ScriptManager1" runat="server" AsyncPostBackTimeout="1200"/>

<asp:Timer ID="Timer1" Enabled="False" OnTick="UpdateLabel" runat="server" Interval="60000">
</asp:Timer>

<ajax:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="conditional">
        <Triggers>
            <ajax:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
        </Triggers>

            <ContentTemplate>
                <asp:Label ID="Label1" runat="server" Text="Panel created." /><br />
            </ContentTemplate>
</ajax:UpdatePanel>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
code Behind


Código:
   protected void Button1_Click(object sender, EventArgs e)
    {
        inicio = DateTime.Now;
        Timer1.Enabled = true;
        Timer1.DataBind();
        System.Threading.Thread.Sleep(180000);//3 minutos
        //recien cuando terminan los 3 minutos se actualiza la label

    }

    protected void UpdateLabel(object sender, EventArgs e)
    {
        System.TimeSpan diff = DateTime.Now.Subtract(inicio);
        Label1.Text = "Tiempo transcurrido: " + diff.Seconds.ToString();
        Label1.DataBind();

    }

Lo que quiero es que al presionar el boton Button1 se active el timer y se invoque al proceso largo, que estoy simulando con un sleep...lo que me está pasando es que se ejecuta el sleep pero no me muestra la label actualizada cada 60 segundos, sino que se ejecuta el sleep y no se actualiza la label a pesar de ejecutarse el evento "UpdateLabel".

Quizá deba hacerlo con un thread, por favor alguna ayuda, gracias
__________________
Daniel Schell
Promoviendo el Desarrollo Humano
www.elsenderodelmedio.com.ar