protected void CVPagingGridView_Sorting(object sender, GridViewSortEventArgs e)
        {
            try
            {
                DesSeleccionarFilas();
                CVPagingGridView.PageIndex = 0;
                List <Entidades.Archivo> lista = new List <Entidades.Archivo>();
                String path = Server.MapPath("~/CVs/");
                List <Entidades.Archivo> archivos = (List <Entidades.Archivo>)ViewState["ListaCompleta"];
                if (CVPagingGridView.OrderBy.ToUpper() == "NOMBRE DESC")
                {
                    archivos = archivos.OrderByDescending(o => o.Nombre).ToList();
                }
                else
                {
                    archivos = archivos.OrderBy(o => o.Nombre).ToList();
                }
                int hasta = (CVPagingGridView.PageIndex * ((Entidades.Sesion)Session["Sesion"]).Usuario.CantidadFilasXPagina) + ((Entidades.Sesion)Session["Sesion"]).Usuario.CantidadFilasXPagina;
                if (archivos.Count < (CVPagingGridView.PageIndex * ((Entidades.Sesion)Session["Sesion"]).Usuario.CantidadFilasXPagina) + ((Entidades.Sesion)Session["Sesion"]).Usuario.CantidadFilasXPagina)
                {
                    hasta = archivos.Count;
                }
                if (archivos.Count != 0)
                {
                    for (int i = CVPagingGridView.PageIndex * ((Entidades.Sesion)Session["Sesion"]).Usuario.CantidadFilasXPagina; i < hasta; i++)
                    {
                        Entidades.Archivo archivo = new Entidades.Archivo();
                        archivo = archivos[i];
                        lista.Add(archivo);
                    }
                }

                CVPagingGridView.VirtualItemCount = archivos.Count;
                CVPagingGridView.PageSize         = ((Entidades.Sesion)Session["Sesion"]).Usuario.CantidadFilasXPagina;
                ViewState["Lista"]          = lista;
                CVPagingGridView.DataSource = lista;
                CVPagingGridView.DataBind();
            }
            catch (System.Threading.ThreadAbortException)
            {
                Trace.Warn("Thread abortado");
            }
            catch (Exception ex)
            {
                MensajeLabel.Text = ex.Message;
            }
        }
        protected void CVPagingGridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            try
            {
                DesSeleccionarFilas();
                CVPagingGridView.PageIndex = e.NewPageIndex;
                List <Entidades.Archivo> lista = new List <Entidades.Archivo>();
                String path = Server.MapPath("~/CVs/");
                List <Entidades.Archivo> archivos = (List <Entidades.Archivo>)ViewState["ListaCompleta"];
                int hasta = (CVPagingGridView.PageIndex * ((Entidades.Sesion)Session["Sesion"]).Usuario.CantidadFilasXPagina) + ((Entidades.Sesion)Session["Sesion"]).Usuario.CantidadFilasXPagina;
                if (archivos.Count < (CVPagingGridView.PageIndex * ((Entidades.Sesion)Session["Sesion"]).Usuario.CantidadFilasXPagina) + ((Entidades.Sesion)Session["Sesion"]).Usuario.CantidadFilasXPagina)
                {
                    hasta = archivos.Count;
                }
                if (archivos.Count != 0)
                {
                    for (int i = CVPagingGridView.PageIndex * ((Entidades.Sesion)Session["Sesion"]).Usuario.CantidadFilasXPagina; i < hasta; i++)
                    {
                        Entidades.Archivo archivo = new Entidades.Archivo();
                        archivo = archivos[i];
                        lista.Add(archivo);
                    }
                }

                CVPagingGridView.VirtualItemCount = archivos.Count;
                CVPagingGridView.PageSize         = ((Entidades.Sesion)Session["Sesion"]).Usuario.CantidadFilasXPagina;
                ViewState["Lista"]          = lista;
                CVPagingGridView.DataSource = lista;
                CVPagingGridView.DataBind();;
            }
            catch (System.Threading.ThreadAbortException)
            {
                Trace.Warn("Thread abortado");
            }
            catch (Exception ex)
            {
                //CedeiraUIWebForms.Excepciones.Redireccionar(ex, "~/Excepcion.aspx");
                MensajeLabel.Text = ex.Message;
            }
        }
 protected void BuscarButton_Click(object sender, EventArgs e)
 {
     if (Funciones.SessionTimeOut(Session))
     {
         Response.Redirect("~/SessionTimeout.aspx");
     }
     else
     {
         MensajeLabel.Text = String.Empty;
         Entidades.Sesion         sesion        = (Entidades.Sesion)Session["Sesion"];
         List <Entidades.Archivo> listaCompleta = new List <Entidades.Archivo>();
         List <Entidades.Archivo> lista         = new List <Entidades.Archivo>();
         int      CantidadFilas = sesion.Usuario.CantidadFilasXPagina;
         String   path          = Server.MapPath("~/CVs/");
         string[] archivos      = System.IO.Directory.GetFiles(path, "*", System.IO.SearchOption.TopDirectoryOnly);
         int      hasta         = CantidadFilas;
         for (int i = 0; i < archivos.Length; i++)
         {
             Entidades.Archivo archivo = new Entidades.Archivo();
             if (RazonSocialTextBox.Text.Trim() != "")
             {
                 if (archivos[i].ToUpper().IndexOf(RazonSocialTextBox.Text.ToUpper().Trim()) > -1)
                 {
                     archivo.Nombre = archivos[i];
                     listaCompleta.Add(archivo);
                 }
             }
             else
             {
                 archivo.Nombre = archivos[i];
                 listaCompleta.Add(archivo);
             }
         }
         if (listaCompleta.Count < ((Entidades.Sesion)Session["Sesion"]).Usuario.CantidadFilasXPagina)
         {
             hasta = listaCompleta.Count;
         }
         if (listaCompleta.Count != 0)
         {
             for (int i = 0; i < listaCompleta.Count; i++)
             {
                 if (i < hasta)
                 {
                     lista.Add(listaCompleta[i]);
                 }
             }
         }
         CVPagingGridView.VirtualItemCount = listaCompleta.Count;
         CVPagingGridView.PageSize         = sesion.Usuario.CantidadFilasXPagina;
         if (lista.Count == 0)
         {
             CVPagingGridView.DataSource = null;
             CVPagingGridView.DataBind();
             MensajeLabel.Text = "No se han encontrado CVs que satisfagan la busqueda";
         }
         else
         {
             CVPagingGridView.DataSource = lista;
             ViewState["Lista"]          = lista;
             ViewState["ListaCompleta"]  = listaCompleta;
             CVPagingGridView.DataBind();
         }
     }
 }