none
Como hacer una barra de progreso en asp.net con c# RRS feed

  • Pregunta

  • Hola!!!!!!!!!!!!!!!!

    Estoy desarrollando una aplicacion en asp.net 3.5 con c# y me tope con un problema que no se si se pueda solucionar.

    tengo un boton que se llama Exportar estadisticos que lo que hace es ejecutar un procedimiento que va llenando un dataset.  el procedimiento se ejecuta n veces dependiendo del total de registros que traiga una grid; es decir que si la grid trae 3000 registros el procedimiento se ejecuta 3000 veces y por lo tanto el dataset se llenara con 3000 datos; los cuales voy a exportar a un excel.

    Todo lo anterior ya lo hace bien, el problema es que cuando son muchos registros se tarda mucho; por lo cual me pidieron que se mostrara una barra de progreso. es decir, que mientras se estan ejecutando el procedimiento y llenando el dataset se muestre una barra de progreso para que el usuario vea el avance, pero la verdad es que no tengo ni la mas remota idea de como hacerlo!!!!!!!!!!

    les muestro el codigo del boton Exportar Estadisticos.

    protected void btnExpotarEstadisticos_Click(object sender, EventArgs e)
            {
                    //dsEstadisticas = null;
                    dsEstadisticasFinal = null;
                    string connectionString = "Data Source=VOLTA;Initial Catalog=GSCRIT;Persist Security Info=True;User ID=super;Password=super";
                    SqlConnection connection = new SqlConnection(connectionString);
                    connection.Open();
                    for (int i = 0; i < ucResultados._grEstadisticas.Rows.Count; i++)
                    {
                        string paciente = ucResultados._grEstadisticas.Rows[i].Cells[0].Text;
                        string estado = ucResultados._grEstadisticas.Rows[i].Cells[1].Text;

                        SqlCommand Query = new SqlCommand("STP_Calcula_Estadisticas_Pacientes", connection);
                        Query.CommandType = CommandType.StoredProcedure;
                        Query.Parameters.Add("@FL_PACIENTE", SqlDbType.Int);
                        Query.Parameters.Add("@NOMBREL", SqlDbType.VarChar, 40);
                        Query.Parameters[0].Value = paciente;
                        Query.Parameters[1].Value = estado;
                        Query.ExecuteNonQuery();
                        SqlDataAdapter da = new SqlDataAdapter(Query);
                        da.Fill(dsEstadisticas);

                        if (dsEstadisticasFinal == null)
                        {
                            dsEstadisticasFinal = dsEstadisticas.Clone();
                            //dsEstadisticasFinal.Merge(dsEstadisticas);
                        }
                        else
                            dsEstadisticasFinal.Merge(dsEstadisticas);
                 
                }
                    connection.Close();
                    dsEstadisticas.WriteXml(Server.MapPath("~\\files\\Expediente_" + "Estadisticas" + ".xls"));
                    Response.ContentType = "doc/xls";
                    Response.AppendHeader("Content-Disposition", "attachment; filename=" + "Estadisticas" + ".xls" + "");
                    Response.AppendHeader("Content-Disposition", "attachment; archivo=" + "Estadisticas"+ ".xls" + "");
                    Response.TransmitFile(Server.MapPath("~\\files\\Expediente_" + "Estadisticas" + ".xls"));
                    Response.End();
            }

    Gracias

    martes, 2 de octubre de 2012 17:04

Todas las respuestas

  • esta exportacion la realizas lanzando uan ventana en popup?

    no has evaluado usar

    http://social.msdn.microsoft.com/Forums/es/netfxwebes/thread/d8513581-c002-49b8-a035-80f4adab6f4c

    podrias usar jquery para mostrar un gif que indique trabajo


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    martes, 2 de octubre de 2012 17:49