La Web del Programador: Comunidad de Programadores
 
    Pregunta:  58340 - ACTUALIZAR UN LABEL CON UN CONTADOR (TIMER)
Autor:  Daniel Schell
Hola que tal, mi problema es que tengo un boton que invoca un store procedure que devuelve datos despues de un proceso muy largo, tal vez 2 horas, entonces a los 20 minutos de iniciado el proceso aparece el temible popup del servidor (Timeout Expired)

Esto no lo pude solucionar seteando el Timeout del objeto session ni tampoco tocando el web.config

<httpRuntime executionTimeout="3000000" maxRequestLength="4096" useFullyQualifiedRedirectUrl="false" minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="100"/>

Mi idea es que el servidor se comunique con el browser cada tanto para que el timeout se reinicie, y esto quisiera lograrlo actualizando el contenido de un label cada n segundos, por ejemplo cada 10 segundos que se actualice el mensaje "tiempo transcurrido: n segundos"

He intentado con un updatepanel con un control asp:timer pero no logro que la etiqueta se active mientras se produce el sleep que puse para simular el proceso

Es posible que me envien un pequeño ejemplo funcionando que haga exactamente lo que estoy buscando

Desde ya muchas gracias aunque sea por leerme

Saludos

  Respuesta:  Jose de Jesus Ramirez Aviles
Si usas asp.net 2 o superior podrias usar el ajaxcontroltoolkit :

1 insertar control scriptmanager
2 insertar updatepanel
3 dentro del updatepanel insertar el label
4 inserta control timer y establecer el intervalo
5 doble clic control timer e insertar el codigo para que actuallice la etiqueta ejemplo:
protected void Timer1_Tick(object sender, EventArgs e)
{
this.Label1.Text = DateTime.Now.ToString();
}
6 en el updatpanel propiedad: updatemode=condicional
7 en el updatpanel propiedad triggers clic/agregar/asyncpostback/controlid=timer1(nombre del timer) y eventname=tick

facil y suerte

si quieres entender mas http://msdn.microsoft.com/es-mx/library/bb386404(v=vs.100).aspx