none
Ordenar gridView desde un IQueryable RRS feed

  • Pregunta

  • Hola,

    Intento ordenar un gridView por columnas. El grid muestra una serie de Obras además del nombre del cliente (otra entidad relacionada).

    El grid lo relleno de la siguiente manera:

    grdObras.DataSource = opObras.GetAllObrasSinFinalizar();                
    grdObras.DataBind();

    La función la tengo en la clase ObrasBOImpl.cs:

    public IQueryable GetAllObrasSinFinalizar()
            {
                try
                {
                    using (Entidades context = new Entidades())
                    {

                        var q = from obras in context.Obras.Include("Clientes")
                                where obras.F_Finalizacion == null || obras.F_Finalizacion > DateTime.Today
                                orderby obras.Nombre ascending
                                select new Obras
                                {
                                    ID_Obra = obras.ID_Obra,
                                    Nombre = obras.Nombre,
                                    Telefono = obras.Telefono,
                                    Clientes = obras.Clientes,
                                    Cif = obras.Clientes.Cif
                                };
                       
                        return q.ToList().AsQueryable();
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

     

    Desde mi pantalla no se cómo hacer para tratar el Iqueryable que devuelve la consulta y poder ordenarlo por ejemplo por el campo Nombre.

    Muchas gracias de antemano.

    Saludos.

    sábado, 12 de noviembre de 2011 11:07

Todas las respuestas

  • Perdón, me he equivocado en la consulta, la correcta es ésta:

    public IQueryable GetAllObrasSinFinalizar()
            {
                try
                {
                    using (Entidades context = new Entidades())
                    {

                        var q = from obras in context.Obras.Include("Clientes")
                                where obras.F_Finalizacion == null || obras.F_Finalizacion > DateTime.Today
                                orderby obras.Nombre ascending
                                select new
                                {
                                    ID_Obra = obras.ID_Obra,
                                    Nombre = obras.Nombre,
                                    Telefono = obras.Telefono,
                                    Cliente = obras.Clientes.Nombre,
                                    Cif = obras.Clientes.Cif
                                };
                       
                        return q.ToList().AsQueryable();
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

    sábado, 12 de noviembre de 2011 11:10
  • No se si pudiste resolver pero lo acabo de ver y creo que esto te podria ayudar

     

    public IList GetAllObrasSinFinalizar()
            {
                try
                {
                    using (Entidades context = new Entidades())
                    {
    
                        var q = from obras in context.Obras.Include("Clientes")
                                where obras.F_Finalizacion == null || obras.F_Finalizacion > DateTime.Today
                                orderby obras.Nombre ascending
                                select new
                                {
                                    ID_Obra = obras.ID_Obra,
                                    Nombre = obras.Nombre,
                                    Telefono = obras.Telefono,
                                    Cliente = obras.Clientes.Nombre,
                                    Cif = obras.Clientes.Cif
                                };
                       
                        return q.ToList();
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
    
    
    si te das cuenta retorno un IList me imagino que trabajas con asp.net prueba y me dices


    Luis Y. Ramirez "Recuerda marcar la repuesta como VALIDA si te ha ayudado"
    viernes, 18 de noviembre de 2011 1:22