ASP.NET - Barra de Progreso

 
Vista:

Barra de Progreso

Publicado por Gonzalo (4 intervenciones) el 28/12/2006 16:02:50
Hola a todos !!!

Tengo varios procesos (select, update e insert) que se ejecutan en una aspx que se ejecutan en forma conjunta y demoran varios minutos. Lo que quiero es mostrar alguna barra o marquesina que marque el progreso del proceso, o el inicio y finalizacion del mismo.

Que puedo hacer y como? Grax's !!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Barra de Progreso

Publicado por p@vr1 (21 intervenciones) el 10/01/2007 15:15:45
hola mae yo tube la misma situacion y lo hice de la siguiente forma:

como progressBar utilizas un simple <asp:Label...

ej:
Label lblProgressBar = new label();

int files= 3; //select, update e insert

for(int i =0; i < files; i++)
{
//corres el proceso
...

//actualizas el label con una tabla html con 2 columnas
//En este caso no lo estoy basando en el 100% sino en el 200%

files++;

//sacas el %
percentage = (files * 200) / totalFiles;

//parece que cuando el porcentaje esta entre 0 y 1 el progressBar muestra el progreso como si fuera 50% (la mitad) y para solucionarlo, en el caso que el porcentaje este entre 0 y 1, se pone el valor como 1%
if (percentage >= 0 && percentage < 1)
{
percentage = 1;
}

//Se actualiza el progressBar con el nuevo porcentaje
Response.Write("<script language = javascript > document.getElementById('progressBar').innerHTML='<table width=200px height=18px border=0 cellspacing=1><tr><td width="
+ percentage + " background=images/block2.gif></td><td></td></tr></table>' </script>");

//Esta line muesta el porcentaje en otro label que esta posicionado sobre el progressBar
Response.Write("<script language=javascript> document.getElementById('lblPercentage').innerHTML = '" + Math.Round(((files * 200) / totalFiles) / 2) + "%'; </script>");

//Con el metodo flush los datos viajan directamente desde el servidor hasta el cliente sin necesidad que se almacenen en el buffer (osea refrescara el progressBar)
Response.Flush();
}

eso es todo intentalo no es complicado, espero te sirva
suerte
saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar